1. 程式人生 > >Python一起來找茬—difflib模塊

Python一起來找茬—difflib模塊

Python一 aabb 不同 nag images 51cto write code pro

模塊difflib

比較並找出兩個文本內容的不同

import difflib

text1="""1. Beautiful is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
""".splitlines(keepends=True)

text2="""1. Beautiful is better than ugly.
3.   Simple is better than complex.
4. Complicated is better than complex.
5. Flat is better than nested.
""".splitlines(keepends=True)

#第一種方式:
d = difflib.Differ()
result = list(d.compare(text1,text2))
result = ‘‘.join(result)
print(result)
"""
運行結果以文本行方式顯示,不容易理解
"""

#第二種方式:
d = difflib.HtmlDiff()
with open(‘diffirent.html‘,‘w‘) as f:
    f.write(d.make_file(text1,text2))
"""
生成一個html文件,用瀏覽器打開,會顯示兩個文本內容的不同之處
"""

第一種方式:
技術分享圖片
第二種方式:
技術分享圖片

直接比較兩個文件:

import difflib

file1 = ‘/etc/passwd‘
file2 = ‘/tmp/passwd‘

with open(file1) as f1,open(file2) as f2:
    text1 = f1.readlines()
    text2 = f2.readlines()

d = difflib.HtmlDiff()
with open(‘passwd.html‘,‘w‘) as f:
    f.write(d.make_file(text1,text2))

技術分享圖片

技術分享圖片

Python一起來找茬—difflib模塊