运行环境:
Python3.6
,Windwos10 RS1
,Pycharm
参考书籍—《Python自动化运维--技术与最佳实践》
刘天斯著
模块介绍
Python2.3
以上的版本默认自带了filecmp
模块,无需额外安装。我们可以用这个模块来检查原式与目标文件的一致性,filecmp
可以实现文件、目录、遍历子目录的差异对比功能。
模块使用
filecmp
提供了三个操作方法。
cmp
:单文件对比cmpfiles
:多文件对比dircmp
:目录对比
单文件对比
使用的是filecmp.cmp(f1,f2[,shallow])
。其中f1
、f2
为文件,当两个文件相同时返回True
,不同返回False
,(shallow
默认为True
,其意思是只根据os.stat()
方法返回的文件基本信息进行对比[最后访问时间、修改时间、状态改变时间等,而不考虑文件内容])。当shallow
为False
时,则os.stat()
与文件内容同时进行校验。
现在我在我代码的当前路径下有三个分别名为File1.txt
、File2.txt
、File3.txt
的文件,File1.txt
和File3.txt
两个文件是单独创建的文本文件,而File2.txt
是File1.txt
的副本文件,即直接由复制文件File1.txt
并改名File2.txt
得到。所以按理来说File1.txt
、File2.txt
两个文件完全相同、而与File3.txt
文件不同。
下面使用代码进行验证:
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
>>> import filecmp
>>> filecmp.cmp('./File1.txt',