我试图逐行比较两个大文本文件(每个 10GB)而不将整个文件加载到内存中。我使用了其他线程中指示的以下代码:
with open(in_file1,"r") as f1, open(in_file2,"r") as f2:
for (line1, line2) in zip(f1, f2):
compare(line1, line2)
但似乎python无法逐行读取文件。我观察到运行代码时的内存使用量 > 20G。我也尝试过使用:
import fileinput
for (line1, line2) in zip(fileinput.input([in_file1]),fileinput.input([in_file2])):
compare(line1, line2)
这个还尝试将所有内容加载到内存中。我在 Centos 5.9 上使用 Python 2.7.4,并且我没有在我的代码中存储任何行。
我的代码出了什么问题?我应该如何更改它以避免将所有内容加载到 RAM 中?