使用Python递归比较文件夹
我打算在Python中实现一个递归的文件夹比较功能。你觉得用什么算法比较好呢?
- 先获取两个文件夹里的文件列表
- 对这两个列表进行排序
- 使用filecmp模块来比较文件
- 对每个文件夹重复这个过程
最后,我需要得到的只是不同的文件列表(这里不需要内容上的差异),以及在其中一个可比较的文件夹中缺失的文件列表。
谢谢。
2 个回答
2
在一个文件夹里进行递归搜索,对于每个文件,计算它的md5或sha校验和,并把这个校验和作为字典的键,把文件的路径和名字作为值存储起来。对两个文件夹都这样做。然后你可以从每个文件夹中移除相同的键值对,最后得到的就是那些缺失或不同的文件。
这样做会形成一个简单的O(n)算法,其中n是文件夹的大小。