filecmp------比較檔案
作用:比較檔案系統中的檔案和目錄
filecmp模組包含一些函式喝乙個類來比較檔案系統中的檔案和目錄。
1.1 cmp()用於比較檔案系統中的兩個檔案
1備註:①"\...\...\testfile1","\...\...\testfile2"為比較的兩個檔案,「shallow=false」引數告訴cmp()除了檔案的源資料外,是否還要檢視檔案的內容。預設情況下,會使用有os.stat()得到的資訊完成乙個淺比較,而不檢視內容。對於同時建立的相同大小的檔案如果不比較內容會報告相同import
filecmp23
print filecmp.cmp("
\...\...\testfile1
","\...\...\testfile2
",shallow=false)
1.2 cmpfiles()多檔案比較
如果非遞迴地比較兩個目錄中的一組檔案,可以使用cmpfiles()。引數是目錄名和兩個位置上要檢查的檔案列表。傳入的公共檔案列表應當只包含檔名,而且這些檔案在兩個位置上都應當出現。
1cmpfiles() 返回3個檔名列表,分別包含匹配的檔案、不匹配的檔案和不能比較的檔案(許可權問題或出於其他原因)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
"match :
", match
17print
"mismatch :
", mismatch
18print
"error :
" , errors
2.1 比較目錄
對於大目錄樹的遞迴比較或者完成更完整的分析,dircmp類會更有用。
1report()會列印比較兩個目錄的報告import
filecmp
2 filecmp.dircmp("
dir1
","dir2
").report()
需要遞迴子目錄對比可以使用report_full_closure()
2.2 程式中的使用
1dc.common:兩個輸入目錄中共有的檔名儲存在commonimport
filecmp
2import
pprint
34 dc = filecmp.dircmp("
dir1
","dir2")
5print
"left : "6
pprint.pprint(dc.left_list)78
"\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
"\nright :
"17 pprint.pprint(dc.right_list)
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函式可以獲得檔案屬性 如果檔案內容匹配,...