通过Python模块filecmp 对文件比较的实现方法


Posted in Python onJune 29, 2018

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

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

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

import filecmp 
s = filecmp.cmp("qin.txt", "jian.txt") 
print(s)

运行结果如下:

如果俩文件相同则返回True , 如果不同则返回False

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

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

import filecmp 
match,mismatch,errors = filecmp.cmpfiles("qin", "fu",['a.txt','b.txt']) 
print("%s\n%s\n%s"%(match,mismatch,errors))

运行结果如下:

['a.txt'] -- 表示两个文件都有该文件,并且完全匹配
['b.txt'] -- 表示两个文件都有该文件,但是不匹配
[]          -- 表示没有错误的文件

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

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

report():只比较指定文件夹中的内容(文件与文件夹)report_partial_closure():比较文件夹及第一级子文件夹的内容report_full_closure():递归比较所有的文件夹的内容

例子:在文件夹"qin"中含有文件"a.txt", 在文件夹"fu"中含有文件"a.txt"和"b.txt",其两个文件夹下面的文件"a.txt"内容一样,

<span style="font-size: 12px;">import filecmp 
x = filecmp.dircmp("qin","fu") 
diff = x.report() 
print(diff)</span>

输出结果如下:

diff qin fu  
Only in fu: ["b.txt"] 
Identical files: ["qin.txt"] 

如果两个文件夹下面的文件"a.txt"内容不相同那么结果如下:

输出结果如下:

diff qin fu 
Only in fu: ["b.txt"] 
Differing files: ["a.txt"] 

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

总结

以上所述是小编给大家介绍的通过Python模块filecmp 对文件比较的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中的闭包详细介绍和实例
Nov 21 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
python版学生管理系统
Jan 10 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
Python实现决策树并且使用Graphviz可视化的例子
Aug 09 Python
python 接口实现 供第三方调用的例子
Aug 13 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
聊聊python中的异常嵌套
Sep 01 Python
python实现三阶魔方还原的示例代码
Apr 28 Python
Python之列表的插入&amp;替换修改方法
Jun 28 #Python
python 寻找list中最大元素对应的索引方法
Jun 28 #Python
对numpy.append()里的axis的用法详解
Jun 28 #Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 #Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 #Python
Python格式化日期时间操作示例
Jun 28 #Python
Python subprocess模块功能与常见用法实例详解
Jun 28 #Python
You might like
PHP中date()日期函数有关参数整理
2011/07/19 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
php实现读取超大文件的方法
2014/07/28 PHP
Javascript将string类型转换int类型
2010/12/09 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
信息滚动效果的实例讲解
2017/09/18 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
Python 基础教程之str和repr的详解
2017/08/20 Python
Python中property属性实例解析
2018/02/10 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
python中import与from方法总结(推荐)
2019/03/21 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
思想品德自我鉴定
2013/10/12 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
前处理组长岗位职责
2014/03/01 职场文书
小学生寒假家长评语
2014/04/16 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python