【Linux系统管理5】
2021-06-15 本文已影响0人
西布鲁克
文件内容管理
本节解决的问题包括:
1.两个不同目录下的文件有何差别
2.有多少重复文件
3.如何找到重复文件并删除
目录和文件的比较
Python中filecmp模块包含了比较目录和文件的操作。
- filecmp.cmp() - 比较两个文件是否相同
- filecmp.cmpfiles() - 比较两个不同目录下的多个文件,返回三元组(相同的文件、不同的文件、无法比较的文件)
-
filecmp.dircmp() - 如果要比较两个目录下的所有文件filecmp.cmpfiles()需要把所有文件都指定到参数,显然不可取。filecmp.dircmp()则可以直接比较两个不同目录,但是dircmp()并不会递归再去比较目录下的子目录中的内容。
代码示例:
截屏2021-06-15 下午10.52.29.png
MD5校验和比较
校验码是通过散列函数计算而成,是一种从任何数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,便于进行比较。MD5是目前使用最广泛的散列算法。理论上看,一个MD5哈希值可对应无限个文件,但从现实的角度来看,两个不同的文件几乎不可能有相同的MD5哈希值,任何对一个文件的非恶意变更都会导致其MD5哈希值改变。因此,MD5哈希一般用于检查文件完整性,尤其常用于检测文件传输、磁盘错误或其他情况下文件的正确性。
在Python中计算文件的MD5校验码使用标准库中的hashlib模块即可
代码示例:
截屏2021-06-15 下午11.08.58.png