模組 filecmp檔案及目錄的比較

2021-06-18 05:53:57 字數 2509 閱讀 2285

filecmp------比較檔案

作用:比較檔案系統中的檔案和目錄

filecmp模組包含一些函式喝乙個類來比較檔案系統中的檔案和目錄。

1.1 cmp()用於比較檔案系統中的兩個檔案

1

import

filecmp23

print filecmp.cmp("

\...\...\testfile1

","\...\...\testfile2

",shallow=false)

備註:①"\...\...\testfile1","\...\...\testfile2"為比較的兩個檔案,「shallow=false」引數告訴cmp()除了檔案的源資料外,是否還要檢視檔案的內容。預設情況下,會使用有os.stat()得到的資訊完成乙個淺比較,而不檢視內容。對於同時建立的相同大小的檔案如果不比較內容會報告相同

1.2 cmpfiles()多檔案比較

如果非遞迴地比較兩個目錄中的一組檔案,可以使用cmpfiles()。引數是目錄名和兩個位置上要檢查的檔案列表。傳入的公共檔案列表應當只包含檔名,而且這些檔案在兩個位置上都應當出現。

1

import

filecmp

2importos3

4 d1 = sets(os.listdir("

dir1"))

5 d2 = sets(os.listdir("

dir2"))

67 common = list(d1 &d2)

8 common_files =[f

9for f in

common

10if os.path.isfile(os.path.join("

dir1

",f))

11]

12print

"common files:

",common_files

1314 match,mismatch,errors = filecmp.cmpfiles("

dir1

","dir2

",common_files)

1516

print

"match :

", match

17print

"mismatch :

", mismatch

18print

"error :

" , errors

cmpfiles() 返回3個檔名列表,分別包含匹配的檔案、不匹配的檔案和不能比較的檔案(許可權問題或出於其他原因)

2.1 比較目錄

對於大目錄樹的遞迴比較或者完成更完整的分析,dircmp類會更有用。

1

import

filecmp

2 filecmp.dircmp("

dir1

","dir2

").report()

report()會列印比較兩個目錄的報告

需要遞迴子目錄對比可以使用report_full_closure()

2.2 程式中的使用

1

import

filecmp

2import

pprint

34 dc = filecmp.dircmp("

dir1

","dir2")

5print

"left : "6

pprint.pprint(dc.left_list)78

print

"\nright : "9

pprint.pprint(dc.right_list)

1011

"""可以傳入引數,對輸入進行過濾。

"""12 dc = filecmp.dircmp("

dir1

","dir2

",ignore=["

common_file"])

13print

"left : "14

pprint.pprint(dc.left_list)

1516

print

"\nright :

"17 pprint.pprint(dc.right_list)

dc.common:兩個輸入目錄中共有的檔名儲存在common

dc.left_only:左目錄獨有檔案(dircmp()的第乙個引數 left)

dc.right_only:右目錄獨有檔案(dircmp()的第二個引數 right)

公共成員可以進一步分解為檔案、目錄和funny(兩個目錄中型別不同的內容或者os.stat()指出錯誤的地方)。dc.common_dirs、dc.common_files、dc.common_funny。檔案之間的差別:dc.same_files、dc.deff_files、dc.funny_files。子目錄也會儲存(dc.subdirs) 屬性subdirs是乙個字典,它將目錄名對映到新的dircmp物件,從而能容易地完成遞迴比較。

python之模組filecmp 檔案 目錄比較

coding utf 8 python 27 xiaodeng python之模組filecmp 檔案 目錄比較 用於比較檔案及資料夾的內容.他是輕量級的工具.可以做一些簡單的檔案比較操作,將電腦上相同的檔案進行刪除去重處理 import filecmp 1 匹配2個檔案的內容是否匹配,引數為檔案路...

Python模組filecmp 檔案比較

filecmp模組用於比較檔案及資料夾的內容,它是乙個輕量級的工具,使用非常簡單。python標準庫還提供了difflib模組用於比較檔案的內容。關於difflib模組,且聽下回分解。filecmp定義了兩個函式,用於方便地比較檔案與資料夾 filecmp.cmp f1,f2 shallow 比較兩...

通過Python模組filecmp 對檔案比較

filecmp定義了兩個函式,用於方便地比較檔案與資料夾 filecmp.cmp f1,f2 shallow 比較兩個檔案的內容是否匹配。引數f1,f2指定要比較的檔案的路徑。可選引數shallow指定比較檔案時是否需要考慮檔案本身的屬性 通過 os.stat函式可以獲得檔案屬性 如果檔案內容匹配,...