Python中的Filecmp模塊提供了比較文件和目錄的函數。該模塊屬於Python的標準實用程序模塊。除了其中的數據外,該模塊還考慮文件和目錄的屬性以進行比較。
filecmp.cmpfiles()
Python中的方法用於比較兩個目錄中的文件。使用此方法可以比較多個文件。此方法返回三個文件名列表,即match
,mismatch
和errors
。的match
list包含比較時匹配的文件列表,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.
# 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:[]
相關用法
- Python next()用法及代碼示例
- Python os.dup()用法及代碼示例
- Python set()用法及代碼示例
- Python Decimal max()用法及代碼示例
- Python PIL ImageOps.fit()用法及代碼示例
- Python os.rmdir()用法及代碼示例
- Python sympy.det()用法及代碼示例
- Python Decimal min()用法及代碼示例
- Python os.readlink()用法及代碼示例
- Python os.writev()用法及代碼示例
- Python os.readv()用法及代碼示例
- Python PIL RankFilter()用法及代碼示例
- Python os.rename()用法及代碼示例
- Python os.sendfile()用法及代碼示例
注:本文由純淨天空篩選整理自ihritik大神的英文原創作品 Python | filecmp.cmpfiles() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。