文件与目录差异对比模块filecmp

简介

当我们进行代码审计或校验备份结果时,往往需要检查原始与目标目录的文件一致性,python的标准库已经自带了满足此需求的模块filecmp。filecmp可以实现文件、目录、遍历子目录的差异对比功能。比如报告中输出目标目录比原始多出的文件或子目录,即使文件同名也会判断是否为同一个文件(内容级对比)等,python2.3以上版本自带了filecmp模块,无需额外安装。

模块常用方法说明

filecmp 提供了三个操作方法,分别为cmp(单文件对比)、cmpfiles(多文件对比)、dircmp(目录对比)

单文件对比,采用filecmp.cmp(f1,f2[,shallow])方法,比较文件名为f1和f2的文件,相同返回True,不相同返回False,shallow默认为True,意思是只根据os.stat()方法返回的文件基本信息进行对比,比如访问的时间、修改时间、状态改变时间等,会忽略文件内容的对比。当shallow为 False时,则os.stat()与文件内容同时进行校验。

>>> import filecmp
>>> filecmp.cmp("nginx.conf.v1","nginx.conf.v2")
False
>>>

 多文件对比,采用filecmp.cmpfiles(dir1,dir2,common[,shallow])方法,对比dir1与dir2目录给定文件清单。该方法返回文件名的三个列表,分别为匹配、不匹配、错误。匹配为包含匹配的文件列表,不匹配反之,错误列表包含了目录不存在的文件、不具备读权限或其他原因导致的不能比较的文件清单。

原文地址:https://www.cnblogs.com/Jabe/p/8970001.html

时间: 2024-08-04 14:44:00

文件与目录差异对比模块filecmp的相关文章

文件与目录差异对比方法

环境: Python 2.6.6 linux系统 用到的模块:filecmp filecmp提供了:单文件对比,多文件对比,目录对比 单文件对比:采用filecmp.cmp(f1,f2[,shallow])方法,比较文件名为f1和f2的文件的内容,相同返回True,不相同返回False,shallow默认是True,意思是只根据os.stat()方法返回的文件基本信息进行对比,比如最后访问时间.修改时间.状态改变时间等,会忽略文件内容的对比.当shallow为False时,则os.stat()与

文件与目录差异对比

Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:filecmp 安装:Python版本大于等于2.3默认自带 功能:实现文件.目录.遍历子目录的差异 常用方法: 1.单文件对比(cmp): 采用filecmp.cmp(f1,f2[,shallow]) 方法,[]可空 比较f1和f2文件,相同返回True,否则False shallow默认为True,意思是只根据os.stat() 方法返回的文件基本信息进行对比,即文件基本信息.当为False时,os.

Linux 文件与目录权限对比

r(读取权限) 文件:读取文件内容的权限. 目录:具有列出目录内文件的权限. w(写入权限) 文件:新增.修改文件内容的权限. 目录:在目录内删除.移动.创建内文件的权限,需要同时具有x权限. x(执行权限) 文件:执行权限. 目录:进入目录权限.

目录差异对比

import filecmpa='d:\d1'b='d:\d2'dirobj=filecmp.dircmp(a,b)dirobj.report()dirobj.report_full_closure()dirobj.report_partial_closure()print "left_list"+str(dirobj.left_list)print "right_list"+str(dirobj.right_list)print "common"

python之模块filecmp(文件/目录比较)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块filecmp(文件/目录比较) #用于比较文件及文件夹的内容.他是轻量级的工具.可以做一些简单的文件比较操作,将电脑上相同的文件进行删除去重处理 import filecmp #1.匹配2个文件的内容是否匹配,参数为文件路径 #返回布尔值 print filecmp.cmp('test1.txt','test2.txt')#False print filecmp.cmp('test3.

Python自动化运维——文件内容差异对比

Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:difflib 安装:Python版本大于等于2.3系统自带 功能:对比文本之间的差异,而且支持输出可读性比较强的HTML文档,与Linux中的diff命令比较相似. 两个字符串的差异对比: #import difflib #text1=''' #hello world. #how are you. #nice to meet you. #''' #text1_lines=text1.splitlines

python运维开发常用模块(四)文件对比模块difflib

1.difflib介绍 difflib作为 Python的标准库模块,无需安装,作用是对比文本之间的差异,且支持 输出可读性比较强的HTML文档,与Linux下的diff命令相似.我们可以 使用difflib对比代码.配置文件的差别,在版本控制方面是非常有用. Python 2.3或更高版本默认自带difflib模块,无需额外安装. 示例1:两个字符串的差异对比 [[email protected] part2]$ cat simple1.py #!/usr/bin/python #_*_cod

python之OS模块(对文件or目录操作)

OS模块 os,语义为操作系统,包含普遍的操作系统功能,与具体的平台无关.python编程时,处理文件和目录这些操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,例如:这时候我们使用python中os模块的os.path.abspath(name)功能,甭管是linux或者Windows都可以获取当前的绝对路径. 常见函数列表 os.name

os,os.path模块关于文件,目录常用的方法

Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现. 有了OS模块,我们不需要关心什么操作系统下使用什么模块,OS模块会帮你选择正确的模块并调用. 番号 函数名 使用方法 1 getcwd() 返回当前工作目录 2 chdir(path) 改变工作目录 3 listdir(path='.') 列举指定目录中的文件名('.'表示当前目录,'..'表示上一级目录) 4 mkdir(path) 创建单层目录,如该目录已存在抛出异常 5 makedirs(path)