Python模块学习 filecmp 文件比较


Posted in Python onAugust 27, 2012

filecmp定义了两个函数,用于方便地比较文件与文件夹:

filecmp.cmp(f1, f2[, shallow]):

比较两个文件的内容是否匹配。参数f1, f2指定要比较的文件的路径。可选参数shallow指定比较文件时是否需要考虑文件本身的属性(通过os.stat函数可以获得文件属性)。如果文件内容匹配,函数返回True,否则返回False。

filecmp.cmpfiles(dir1, dir2, common[, shallow]):

比较两个文件夹内指定文件是否相等。参数dir1, dir2指定要比较的文件夹,参数common指定要比较的文件名列表。函数返回包含3个list元素的元组,分别表示匹配、不匹配以及错误的文件列表。错误的文件指的是不存在的文件,或文件被琐定不可读,或没权限读文件,或者由于其他原因访问不了该文件。

filecmp模块中定义了一个dircmp类,用于比较文件夹,通过该类比较两个文件夹,可以获取一些详细的比较结果(如只在A文件夹存在的文件列表),并支持子文件夹的递归比较。

dircmp提供了三个方法用于报告比较的结果:

•report():只比较指定文件夹中的内容(文件与文件夹)
•report_partial_closure():比较文件夹及第一级子文件夹的内容
•report_full_closure():递归比较所有的文件夹的内容
dircmp还提供了下面这些属性用于获取比较的详细结果:

•left_list:左边文件夹中的文件与文件夹列表;
•right_list:右边文件夹中的文件与文件夹列表;
•common:两边文件夹中都存在的文件或文件夹;
•left_only:只在左边文件夹中存在的文件或文件夹;
•right_only:只在右边文件夹中存在的文件或文件夹;
•common_dirs:两边文件夹都存在的子文件夹;
•common_files:两边文件夹都存在的子文件;
•common_funny:两边文件夹都存在的子文件夹;
•same_files:匹配的文件;
•diff_files:不匹配的文件;
•funny_files:两边文件夹中都存在,但无法比较的文件;
•subdirs:我没看明白这个属性的意思,python手册中的解释如下:A dictionary mapping names in common_dirs to dircmp objects

简单就是美!我只要文件比较的结果,不想去关心文件是如何是比较的,hey,就用python吧~~

Python 相关文章推荐
python 生成不重复的随机数的代码
May 15 Python
python中的多重继承实例讲解
Sep 28 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
python画一个玫瑰和一个爱心
Aug 18 Python
python 处理string到hex脚本的方法
Oct 26 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
深入浅析Python代码规范性检测
Jul 31 Python
Python模块学习 datetime介绍
Aug 27 #Python
Python运行的17个时新手常见错误小结
Aug 07 #Python
Python 代码性能优化技巧分享
Aug 07 #Python
Python正则表达式介绍
Aug 06 #Python
python 实现文件的递归拷贝实现代码
Aug 02 #Python
python实现划词翻译
Apr 23 #Python
Python程序语言快速上手教程
Jul 18 #Python
You might like
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Django小白教程之Django用户注册与登录
2016/04/22 Python
python 获取等间隔的数组实例
2019/07/04 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
详解python程序中的多任务
2020/09/16 Python
python跨文件使用全局变量的实现
2020/11/17 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
How TDD works
2012/09/30 面试题
两年的个人工作自我评价
2014/01/10 职场文书
股份合作协议书
2014/04/12 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
死者家属慰问信
2015/03/24 职场文书
原告离婚代理词
2015/05/23 职场文书
战马观后感
2015/06/08 职场文书
成人成长感言如何写?
2019/08/16 职场文书