difflib模組之文字對比

2021-10-01 21:40:56 字數 1679 閱讀 2117

什麼是difflib? 用來做什麼?

difflib為python的標準庫模組,無需安裝。

作用是對比文字之間的差異。

並且支援輸出可讀性比較強的html文件,與linux下的diff命令相似。

在版本控制方面非常有用。

2符號理解

符號含義

『-』包含在第乙個系列行中,但不包含第二個。

『+』包含在第二個系列行中,但不包含第乙個。

』 』兩個系列行一致

『?』存在增量差異

『^』存在差異字元

文字:

import difflib

text1 =

''' 1. beautiful is better than ugly.

2. explicit is better than implicit.

3. ****** is better than complex.

4. complex is better than complicated.

'''.splitlines(keepends=

true

)text2 =

''' 1. beautiful is better than ugly.

3. ****** is better than complex.

4. complicated is better than complex.

5. flat is better than nested.

'''.splitlines(keepends=

true

)# d = difflib.differ()

# print(''.join(list(d.compare(text1,text2))))

d = difflib.htmldiff(

)htmlcontent = d.make_file(text1,text2)

# print(htmlcontent)

with

open

('diff.html'

,'w'

)as f:

f.write(htmlcontent)

import difflib

filename1 =

'/tmp/passwd'

filename2 =

'/tmp/passwd1'

with

open

(filename1)

as f1,

open

(filename2)

as f2:

content1 = f1.read(

).splitlines(keepends=

true

) content2 = f2.read(

).splitlines(keepends=

true

)d = difflib.htmldiff(

)htmlcontent = d.make_file(content1,content2)

with

open

('passwddiff.html'

,'w'

)as f:

f.write(htmlcontent)

difflib模組之文字對比

用法說明 splitlines 按照行 r r n n 分隔,返回乙個包含各行作為元素的列表,如果引數 keepends 為 false,不包含換行符,如果為 true,則保留換行符。difflib.differ 用於過濾函式 或none 預設值是none d.compare a,b 比較兩個行序列...

difflib模組 difflib模組對比檔案差異

usr bin env python import difflib import sys file1 sys.ar 1 file2 sys.ar 2 def readline filename filehandle open filename,rb text filehandle.read spli...

python的difflib模組之文字對比

什麼是difflib?用來做什麼?difflib為python的標準庫模組,無需安裝。作用是對比文字之間的差異。並且支援輸出可讀性比較強的html文件,與linux下的diff命令相似。在版本控制方面非常有用。符號理解 符號 含義 包含在第乙個系列行中,但不包含第二個。包含在第二個系列行中,但不包含...