在Python中区分两个大文件

Myk*_*hko 8 python diff

我有两个大文本文件,每个文件大约2GB.我需要类似的东西diff f1.txt f2.txt.有没有办法在python中快速完成这项任务?标准difflib太慢了.我假设有更快的方法,因为difflib在Python中完全实现.

Sen*_*ran 5

在脚本可以处理大文件的方式下使用difflib怎么样?不要将文件加载到内存中,而要遍历文件的文件并逐块进行比较。例如一次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()
Run Code Online (Sandbox Code Playgroud)