当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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