考虑制表分隔文件^ {< CD1> }:
chrY 1208806 1208908 + .
chrY 1212556 1212620 + .
chrY 1465479 1466558 + .
目标是操纵foo.txt
以获得result.txt
:
chrY:1208806-1208908
chrY:1212556-1212620
chrY:1465479-1466558
此代码适用于:
with open(filename,'r') as f:
for line in f:
l = line.split()[0:3]
result = f'{l[0]}:{l[1]}-{l[2]}'
print(result)
但是如果foo.txt
是一个无法放入内存的巨大文件,那么保存列表中的每一行l
是不可行的。如何将前面提到的代码写入generator/iter
谢谢
我过去需要这样做,来处理大小超过50GB的文件。你需要做的就是在处理每一行的时候把它写下来
(注意在
result
中包含换行符\n
)以这种方式处理大文件需要一段时间,但RAM使用率几乎没有增加
我刚刚测试了你的例子多次复制,效果很好
相关问题 更多 >
编程相关推荐