Python查找重复文件相关操作方式分享 - Go语言中文社区

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


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

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查找重复文件的相关介绍。

【责任编辑:曹凯 TEL:(010)68476606】

点赞 0
版权声明:本文来源51CTO,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:http://developer.51cto.com/art/201003/186050.htm
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 16:40:04
  • 阅读 ( 479 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢