mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
53 lines
1.0 KiB
Python
53 lines
1.0 KiB
Python
|
|
|
|
|
|
def parseTSV(filename,*args):
|
|
f = open(filename)
|
|
|
|
result = []
|
|
for l in [l for l in f if (not l.startswith("#")) and (not l.strip()=="")]:
|
|
|
|
l = l.replace("\n","").split("#")[0]
|
|
data = list(filter(None,l.split("\t"))) # Multiple tabs are okay, we don't accept empty fields unless trailing
|
|
entry = [] * len(args)
|
|
for i in range(len(args)):
|
|
if args[i]=="list":
|
|
try:
|
|
entry.append(data[i].split("␟"))
|
|
except:
|
|
entry.append([])
|
|
elif args[i]=="string":
|
|
try:
|
|
entry.append(data[i])
|
|
except:
|
|
entry.append("")
|
|
elif args[i]=="int":
|
|
try:
|
|
entry.append(int(data[i]))
|
|
except:
|
|
entry.append(0)
|
|
elif args[i]=="bool":
|
|
try:
|
|
entry.append((data[i].lower() in ["true","yes","1","y"]))
|
|
except:
|
|
entry.append(False)
|
|
|
|
result.append(entry)
|
|
|
|
f.close()
|
|
return result
|
|
|
|
def parseAllTSV(path,*args):
|
|
|
|
import os
|
|
|
|
result = []
|
|
for f in os.listdir(path + "/"):
|
|
|
|
if (".tsv" in f):
|
|
|
|
result += parseTSV(path + "/" + f,*args)
|
|
|
|
return result
|
|
|