Python实现查找重复名称文件-md5实现查找重复内容文件
相信很多人都有这个烦恼,文件夹中存在大量的文件,子文件夹中又有一些文件,有很多重名了,有很多虽然名字不一样,但内容确实一摸一样,这样就占用了大量的空间,挨个去找却又即为耗时耗力。这里我就介绍一个基于Python以及hashlib模块下的md5来找出这些重复文件并自动删除。
md5就是一种加密方式,用于确保信息传输完整一致,Python的md5官方文档详细介绍了其使用方法,请自行查阅。
1、代码解析
1)查找文件名相同的文件,并输出其文件名,大小,路径,创建时间
首先建立一个空的file_l列表用于存放每个文件。
然后用os.walk方法遍历路径,以及其子目录,获取文件。判断如果文件名没在file_l列表中则append,若是已经存在,就输出重名文件名,大小,路径,创建时间。
2)查找文件内容相同的文件,并索引其位置,删除掉。
首先类似的新建一个空的字典dup用于存放每个文件的md5值和对应的文件(列表形式),分别作为key,value。
同样用os.walk方法遍历路径,以及其子目录,获取文件,并同时获取其md5值,如果对应文件的md5值没有重复的,就以此md5为k,并将文件加到value列表中,如果遍历到与其相同的md5值,则输出提示/删除掉此文件,这里采用输出提示,并append到对应的value列表中。
2、案例测试
我在test文件夹下分别新建1.txt,2.txt,3.txt并依次存入123,456,789,接着又分别新建t1文件夹下新建1.txt,存入123,t2、t3同理。
然后输入路径test运行结果如下:
最后附上源代码:
1 | import os |
更改其中的路径参数即可判断对应路径下的同名文件及相同内容文件。
附:如果有什么疑问,或遇到什么问题可以通过评论或右下角的信息标志给我留言,我会及时回复。