Python 3 自动化运维之目录差异比较filecmp模块

#目录差异对比filecmp
import filecmp

#定义左目录
leftDir = "/home/abc/dir1"
#定义右目录
rightDir = "/home/abc/dir2"

#目录比较 忽略test.py
dirObj = filecmp.dircmp(leftDir, rightDir, ['test.py'])
#输出对比结果数据报表
dirObj.report() #比较当前指定目录中的内容
dirObj.report_partial_closure()  #比较当前目录及第一子目录的内容
dirObj.report_full_closure()  #递归比较所有目录内容
#打印输出
#左目录中文件和目录列表
print('left_list:'+str(dirObj.left_list))
#右目录中的文件和目录
print('right_list:'+str(dirObj.right_list))
#两边共同存在的文件或目录
print('common:'+str(dirObj.common))
#只在左目录中的文件或目录
print('left_only:'+str(dirObj.left_only))
#只在右目录中的文件或目录
print('right_only:'+str(dirObj.right_only))
#两边都存在的子目录
print('common_dirs:'+str(dirObj.common_dirs))
#两边都存在的子文件
print('common_files:'+str(dirObj.common_files))
#两边都存在的子目录(不同目录类型或os.stat()记录的错误)
print('common_funny:'+str(dirObj.common_funny))
#匹配相同的文件
print('same_file:'+str(dirObj.same_files))
#不匹配的文件
print('diff_files:'+str(dirObj.diff_files))
#两边目录中存在 但无法比较的文件
print('funny_files:'+str(dirObj.funny_files))

filecmp模块提供了三种操作方法:

1.cmp  单文件对比

filecmp.cmp('a.txt', 'b.txt')

2.cmpfiles  多文件对比

filecmp.cmpfiles('/home/abc/dir1', '/home/abc/dir2', ['f1', 'f2', 'f3', 'f4', 'f5'])

3.dircmp  目录对比

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/82632519
今日推荐