Python查找重复文件相关操作方式分享


当我们在使用硬盘存放资料的时候,通常情况下,时间一久,就会出现一些垃圾文件以及重复文件的出现,那么该怎样才能很好的处理这一问题呢?今天我们就可以利用Python来编写一个工具帮助我们解决。那么,就让我们一起看看Python查找重复文件的相关实现方法吧。

  • Python PDB简单调试方式
  • Python图像处理常用操作技巧总结
  • Python正则表达式基本应用方式解读
  • Python压缩文件基本应用代码示例解读
  • Python os模块常用部分功能总结

Python查找重复文件主要思路如下:

1. 查找同命文件

2. 利用了crc32,先检查出同样尺寸的文件,再计算crc32,得出相同的文件名列表。

下面是转载的一个Python查找重复文件的代码,虽然可以满足要求,但是在查找大量文件时候,速度很慢,我抽空把它调优。

  1. #!/usr/bin/env python  
  2. #coding=utf-8  
  3. import binascii, os  
  4. filesizes = {}  
  5. samefiles = []  
  6. def filesize(path):  
  7. if os.path.isdir(path):  
  8. files = os.listdir(path)  
  9. for file in files:  
  10. filesize(path + "/" + file)  
  11. else:  
  12. size = os.path.getsize(path)  
  13. if not filesizes.has_key(size):  
  14. filesizes[size] = []  
  15. filesizes[size].append(path)  
  16. def filecrc(files):  
  17. filecrcs = {}  
  18. for file in files:  
  19. f = open(file, "r")  
  20. 23 crc = binascii.crc32(f.read())  
  21. 24 f.close()  
  22. if not filecrcs.has_key(crc):  
  23. filecrcs[crc] = []  
  24. filecrcs[crc].append(file)  
  25. for filecrclist in filecrcs.values():  
  26. if len(filecrclist) > 1:  
  27. samefiles.append(filecrclist)  
  28. if __name__ == '__main__':  
  29. path = r"J:\My Work" 
  30. filesize(path)  
  31. for sizesamefilelist in filesizes.values():  
  32. if len(sizesamefilelist) > 1:  
  33. filecrc(sizesamefilelist)  
  34. for samfile in samefiles:  
  35. print "****** same file group ******"  
  36. for file in samefile:  
  37. print file 

以上就是对Python查找重复文件的相关介绍。

相关内容

    暂无相关文章

评论关闭