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查看多台服务器进程的脚本分享
Jun 11 Python
python+mysql实现简单的web程序
Sep 11 Python
Python使用django获取用户IP地址的方法
May 11 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python三方库之requests的快速上手
Mar 04 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
numpy中的ndarray方法和属性详解
May 27 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
Python timeit模块原理及使用方法
Oct 10 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
基于php无限分类的深入理解
2013/06/02 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
详解php命令注入攻击
2019/04/06 PHP
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
vuex实现简易计数器
2016/10/27 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
企业统计员岗位职责
2013/12/13 职场文书
年终奖发放方案
2014/06/02 职场文书
小学生运动会报道稿
2014/09/12 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
2015年生活老师工作总结
2015/05/27 职场文书