python:filecmp模块比较文件和目录

filecmp是python内置的一个模块,用于比较文件及文件夹的内容。
filecmp由两个主要的方法,filecmp.cmp(f1, f2, [shallow])和filecmp.cmpfiles(a, b, common, [shallow])。

  • filecmp.cmp(f1, f2, [shallow]),用于比较两个文件。f1、f2是文件名称,shallow为可选参数,指定比较文件时是否需要考虑文件本身的属性,默认是True。
import filecmp


"""
说明:text.txt和text1.txt内容不相同,text.txt和text2.txt内容相同。
"""
res1 = filecmp.cmp("text.txt", "text1.txt", shallow=True)
print("text.txt与text1.txt的比较结果是:{}".format(res1))

res2 = filecmp.cmp("text.txt", "text2.txt", shallow=True)
print("text.txt与text2.txt的比较结果是:{}".format(res2))

如果文件内容匹配,则返回True,如果文件内容不匹配,则返回False:
在这里插入图片描述

  • filecmp.cmpfiles(a, b, common, [shallow]),用于比较两个目录。a, b为目录路径,common为比较文件列表,shallow为可选参数,如果其值为True,则仅比较文件的元数据,即文件的os.stat()签名(如大小,修改日期等),如果它们具有相同的签名,则无论文件内容如何,​​文件都被视为相等。如果为False,则比较文件的内容。此参数的默认值为True。
import filecmp


"""
说明:
dir1中有三个文件,"text.txt", "text1.txt", "text2.txt"
dir2中有两个文件,"text.txt", "text1.txt"
两个文件夹中的"text.txt"文件一样,"text1.txt"文件不一样
"""
dir1 = r'D:\PythonWorkFolder\wsw\test\folder'
dir2 = r'D:\PythonWorkFolder\wsw\test\folder1'
common_list = ["text.txt", "text1.txt", "text2.txt"]
match, mismatch, errors = filecmp.cmpfiles(dir1, dir2, common_list, shallow=True)

print("比较的结果中,匹配的是:\n{}\n不匹配的是:\n{}\n错误的是:\n{}\n".format(match, mismatch, errors))

此函数会返回三个列表,分别存放匹配文件名称、不匹配文件名称、错误文件名称:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值