我需要合并每个大约150 MB的文本文件, 和一起将达到约5GB
问题是我不能使用readlines(),使用readlinesort, 因为最后一步需要将5GB加载到内存中,并且只需要
for line1 in file1, line2 in file2:
while( line1 & line2 )...
命令,我不能告诉python只获取文件1的下一行,并保留文件2的行,因此无法进行合并排序
我读了一些关于在readlines()上设置readbuffer非常低的东西,只将一行加载到内存中,但是我无法从文件中删除第一行
是否有任何其他内存有效的方法来获取文件的第一行 并删除它, 或者是否有一个可用的功能来合并两个文本文件?
答案 0 :(得分:1)
命令,我不能告诉python只获取文件1的下一行,并保留文件2的行,因此无法进行合并排序
不,你可以。
line1 = file1.readline()
line2 = file2.readline()
while file1_not_at_end and file2_not_at_end:
if line1 < line2:
file3.write(line1)
line1 = file1.readline()
else:
file3.write(line2)
line2 = file2.readline()
# merge file 1 into file 3
# merge file 2 into file 3