filecmp --- 文件及目录的比较│Python标准库

本文介绍了Python的filecmp模块,用于比较文件和目录。通过快捷函数`cmp()`和`dircmp()`类展示了如何进行对比,并讨论了参数`shallow`的影响。同时提到了文件时间戳的缓存问题和`clear_cache()`函数的使用。文章还提供了测试代码示例和相关参考资料。
摘要由CSDN通过智能技术生成

前情提示: 测试代码中,右尖括号(>)表示命令行中输入的命令; 单独一行并以井字符(#)开头的为输出内容; 库的导入仅在本文的第一个测试代码中展现,其他代码块均省略库的导入代码。

  • 系统类型: Windows 10
  • python 版本: Python 3.9.0

filecmp 模块可以用于文件与文件之间或目录与目录之间的比较。并且可以通过设置参数来选取多种不同用时和不同准确性的方案。

filecmp 模块在进行文件或目录对比时,最终仅能返回是否相等这一结果。某些场景需要更加详细的结果说明,可以使用 difflib 标准库。

快捷函数
filecmp.cmp(f1, f2, shallow=True)
参数:
    f1, f2: 要进行比较的两个文件
    shallow: 关键字参数, 参数值为布尔值, 默认为 True;
             如果为 True, 则判断两文件需要具有相同的 os.stat() 签名才会认为是相等的;
             如果为 False, 则比较两文件的内容;
返回值:
    布尔值, 两个文件是否相等

比较 f1f2 的文件,如果它们似乎相等则返回 True,否则返回 False。在官方文档中用上了 ‘似乎’ 一词,这让人感觉有什么隐秘的信息文档上没有表达出来。

import filecmp
import os

'''本次测试代码中存在 4 个待对比文件, 其中 文件1 与 文件2 内容不同, 文件3 与 文件4 内容相同'''
print(os.stat('文件1'))
print(os.stat('文件2'))
print(filecmp.cmp('文件1', '文件2', shallow=True))
print(filecmp.cmp('文件1', '文件2', shallow=False))
# os.stat_result(st_mode=33206, st_ino=1407374883609775, st_dev=3098197482, st_nlink=1, st_uid=0, st_gid=0, st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值