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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。