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 相关文章推荐
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
Python编写登陆接口的方法
Jul 10 Python
Python3.4 tkinter,PIL图片转换
Jun 21 Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 Python
Python脚本完成post接口测试的实例
Dec 17 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
详解Python中namedtuple的使用
Apr 27 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
python redis存入字典序列化存储教程
Jul 16 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
python保存图片的四个常用方法
Feb 28 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获取用户浏览器版本的方法
2015/01/03 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
js实现拖拽效果
2015/02/12 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
JavaScript中的闭包
2016/02/24 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
Django如何使用redis作为缓存
2020/05/21 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
PHP如何防止SQL注入
2014/05/03 面试题
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
资源环境与城市管理专业推荐信
2013/11/30 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
老龄工作先进事迹
2014/08/15 职场文书
财产保全担保书
2015/01/20 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android