當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python filecmp.cmpfiles()用法及代碼示例


Python中的Filecmp模塊提供了比較文件和目錄的函數。該模塊屬於Python的標準實用程序模塊。除了其中的數據外,該模塊還考慮文件和目錄的屬性以進行比較。

filecmp.cmpfiles()Python中的方法用於比較兩個目錄中的文件。使用此方法可以比較多個文件。此方法返回三個文件名列表,即matchmismatcherrors。的matchlist包含比較時匹配的文件列表,mismatch列表包含那些沒有的文件的名稱,以及errors列表包含無法比較的文件名。

默認情況下,此方法執行淺表比較(默認情況下shallow = True),這意味著僅比較文件的os.stat()簽名(如大小,修改日期等),如果它們具有相同的簽名,則無論文件內容如何,​​文件都被視為相等。如果shallow設定為False然後通過比較文件內容來完成比較。


用法: filecmp.cmpfiles(dir1, dir2, shallow = True) 

參數:
dir1:第一個目錄的路徑。它可以是字符串,字節或代表目錄路徑的os.PathLike對象。
dir2:第二個目錄的路徑。它可以是字符串,字節或代表目錄路徑的os.PathLike對象。
common:代表將在dir1和dir2中進行比較的文件名的列表。
shallow(可選):布爾值“ True”或“ False”。此參數的默認值為True。如果其值為True,則僅比較文件的元數據。如果為False,則比較文件的內容。

返回類型:此方法返回三個列表的元組,分別表示匹配,不匹配和錯誤列表。

例如:

filecmp.cmpfiles(dir1, dir2, [file1, file2, fil3]) will compare dir1/file1 with dir2/file1, dir1/file2 with dir2/file2 and dir1/file3 with dir2/file3 and will return match, mismatch and errors list.

例:使用filecmp.cmpfiles()方法比較兩個目錄中的文件。
# Python program to explain filecmp.cmpfiles() method  
    
# importing filecmp module  
import filecmp 
  
# Path of first directory 
dir1 = "/home / User / Documents"
  
# Path of second directory 
dir2 = "/home / User / Desktop"
   
# Common files 
common = ["file1.txt", "file2.txt", "file3.txt"] 
  
# Shallow compare the files 
# common in both directories   
match, mismatch, errors = filecmp.cmpfiles(dir1, dir2, common) 
  
# Print the result of 
# shallow comparison 
print("Shallow comparison:") 
print("Match:", match) 
print("Mismatch:", mismatch) 
print("Errors:", errors, "\n") 
  
  
# Compare the 
# contents of both files 
# (i.e deep comparison) 
match, mismatch, errors = filecmp.cmpfiles(dir1, dir2, common, 
                                              shallow = False) 
  
# Print the result of 
# deep comparison 
print("Deep comparison:") 
print("Match:", match) 
print("Mismatch:", mismatch) 
print("Errors:", errors)
輸出:
Shallow comparison:
Match:['file1.txt', 'file2.txt', 'file3.txt']
Mismatch:[]
Errors:[]  

Deep comparison:
Match:['file1.txt', 'file2.txt']
Mismatch:['file3.txt']
Errors:[]


相關用法


注:本文由純淨天空篩選整理自ihritik大神的英文原創作品 Python | filecmp.cmpfiles() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。