5
我有兩個大的文本文件,每個大約2GB。我需要像diff f1.txt f2.txt
。有沒有辦法在python中快速完成這項任務?標準difflib
太慢了。我假設有更快的方法,因爲difflib
完全在Python中實現。在Python中比較兩個大文件
我有兩個大的文本文件,每個大約2GB。我需要像diff f1.txt f2.txt
。有沒有辦法在python中快速完成這項任務?標準difflib
太慢了。我假設有更快的方法,因爲difflib
完全在Python中實現。在Python中比較兩個大文件
如何使用difflib以便腳本可以處理大文件?不要將文件加載到內存中,而是遍歷文件和diff區塊中的文件。例如,一次有100行。
import difflib
d = difflib.Differ()
f1 = open('bigfile1')
f2 = open('bigfile2')
b1 = []
b2 = []
for n, lines in enumerate(zip(f1,f2)):
if not (n % 100 == 0):
b1.append(lines[0])
b2.append(lines[1])
else:
diff = d.compare("".join(b1), "".join(b2))
b1 = []
b2 = []
print ''.join(list(diff))
diff = d.compare("".join(b1), "".join(b2))
print ''.join(list(diff))
f1.close()
f2.close()
爲什麼不使用`diff f1.txt f2.txt`? – delnan 2011-02-04 14:34:28
@delnan:因爲它會使我的腳本平臺依賴。獲取文件差異只是腳本其他部分的其中一個 – 2011-02-04 14:38:30