我有一个很大的tsv文件:1.5 GB。我想解析这个文件。我使用以下功能:
def readEvalFileAsDictInverse(evalFile):
eval = open(evalFile, "r")
evalIDs = {}
for row in eval:
ids = row.split("\t")
if ids[0] not in evalIDs.keys():
evalIDs[ids[0]] = []
evalIDs[ids[0]].append(ids[1])
eval.close()
return evalIDs
这需要10多个小时,并且仍在工作。我不知道如何加快此步骤,以及是否还有另一种方法可以解析,例如文件
最佳答案
也许您可以使它更快一些。更改:
if ids[0] not in evalIDs.keys():
evalIDs[ids[0]] = []
evalIDs[ids[0]].append(ids[1])
至
evalIDs.setdefault(ids[0],[]).append(ids[1])
第一种解决方案在“ evalID”字典中搜索3次。