我有一张表格:
source ||| target ||| s1 s2 s3 s4 s5 ||| ||| c1 c2 .
这种表格有两个文件,分别有9000万行和5000万行。我想处理它们以生成一个新文件。但是,由于我每次都犯错误,因此加载文件并从中生成 dicts 太耗时了。如果我每次都使用 marshal 转储和加载它们,仍然需要相当长的时间。有更快的方法吗?两种情况都附有代码。
htEnPT = defaultdict(list)
for phrase in open(phraseTable,'r'):
parts = phrase.split(' ||| ')
sourcePhrase = removePunctuations(parts[0])
htEnPT[sourcePhrase].append(removePunctuations(parts[1]),parts[2],parts[3])
这每次都会加载字典并且需要很长时间。
如果我在完成上述操作后这样做,
marshal.dump(dict(PhraseTable),open(sys.argv[4],'wb'))
然后,这样做:
marshal.load(open(sys.argv[1],'rb'))
仍然需要很长时间。
那么,在原型设计时是否有更快的方法来处理如此大的文件?谢谢。