Python自动化运维——文件与目录差异对比

模块:filecmp

安装:Python版本大于等于2.3默认自带

功能:实现文件、目录、遍历子目录的差异

常用方法:

1.单文件对比(cmp):

  • 采用filecmp.cmp(f1,f2[,shallow]) 方法,[]可空
  • 比较f1和f2文件,相同返回True,否则False
  • shallow默认为True,意思是只根据os.stat()
    方法返回的文件基本信息进行对比,即文件基本信息。当为False时,os.stat() 与文件内容同时进行校验

2.多文件对比(cmpfiles):

  • 采用filecmp.cmpfiles(dir1,dir2,common[,shallow]) 方法
  • 对比dir1和dir2目录给定的文件清单。
  • 此方法返回文件名的三个列表:匹配、不匹配、错误
  • 匹配:包含匹配的文件的列表
  • 不匹配:与匹配相反
  • 错误:目录不存在文件、不具备读权限或其他原因导致的不能比较的文件清单

3.目录对比(dircmp):

  • 使用dircmp(a,b[,ignore[,hide]]) 类创建一个目录比较对象

  • a和b是参加比较的目录名;

  • ignore代表文件名忽略的列表,默认为[‘RCS’,‘CVS’,‘tags’];

  • hide代表隐藏的列表,默认为[os.curdir,os.pardir]。

  • dircmp类可以获得目录较为详细的信息

  • dircmp提供了三个输出报告的方法:

    1:report(),比较当前指定目录中的内容
    2:report_partial_closure(),比较当前指定目录及第一级子目录中的内容
    3:report_full_closure(),递归比较所有指定目录的内容

  • dircmp为输出提供了更加详细的比较结果,提供了如下属性:

    1:left,左目录,如上述的a
    2:right,右目录,如上述的b
    3:left_list,左目录中的文件及目录列表
    4:right_list,右目录中的文件及目录列表
    5:common,两边目录共同存在的文件或目录
    6:left_only,只在左目录中的文件或目录
    7:right_only,只在右目录中的文件或目录
    8:common_dirs,两边目录都存在的子目录
    9:common_files,两边目录都存在的子文件
    10:common_funny,两边目录都存在的子目录(不同目录类型或os.stat()记录的错误)
    11:same_files,匹配相同的文件
    12:diff_files,不匹配的文件
    13:funny_files,两边目录中都存在,但无法比较的文件
    14:subdirs,将common_dirs目录名映射到新的dircmp对象,格式是字典类型

比较dir1和dir2的目录差异:(先自定义目录下的文件与目录,再使用)

学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895 817 687
有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!

1 #import filecmp
 2 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值