1

我有一张表格:

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'))

仍然需要很长时间。

那么,在原型设计时是否有更快的方法来处理如此大的文件?谢谢。

4

1 回答 1

1

您可以使用文件的一部分行进行测试。

于 2012-12-01T04:43:20.050 回答