【发布时间】:2014-07-09 01:43:03
【问题描述】:
巨大的文件是这样的。
@delimiter...xxxxxxx 1st line
atgccccccccccccccc... 2nd line
+ 3rd line
agtrc!%%^*()_+!... 4th line
这四行继续。分隔符可能在第一行。我想要做的是如果分隔符在第一行,我想写出以下4行。
这是我的代码。
with open("hugefile") as fin, open("hugefile_out") as fout:
for line in fin:
if delimiter in line:
1st_line = line
2nd_line = fin.next()
3rd_line = fin.next()
4th_line = fin.next()
fout.write(1st_line + 2nd_line + 3rd_line + 4th_line)
通常需要 4 到 5 个小时才能完成这项工作。(我放弃了一个功能。)有没有办法让它更快?(我使用 pypy。)输入文件是 1~100Gb 所以那些重复的代码似乎没有必要。
可能是这样的?
fout.write(line + fin.next() + fin.next() + fin.next())
提前感谢!
【问题讨论】:
-
如果分隔符不在第一行会怎样?
-
那我就不需要了。 :)