簡體   English   中英

在Python中比較兩個大文件

[英]diff two big files in Python

我有兩個大文本文件,每個文件近2GB。 我需要類似diff f1.txt f2.txt 有什么辦法可以在python中快速完成此任務? 標准difflib太慢。 我認為有更快的方法,因為difflib是在Python中完全實現的。

在腳本可以處理大文件的方式下使用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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM