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

开发 后端
Python查找重复文件的实现,可以轻松的帮助我们处理硬件中重复文件出现的问题。我们将会在这里针对这一技术做一个详细介绍。

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

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

责任编辑:曹凯 来源: 博客园
相关推荐

2010-03-04 15:57:23

Python实现ini

2010-03-05 09:33:05

Python实现tab

2021-09-13 12:15:57

Linux文件命令

2010-03-04 10:50:45

windows ser

2010-01-13 10:25:30

VB.NET文件夹操作

2010-01-25 18:33:35

Android键盘操作

2009-12-10 17:27:39

PHP操作Cookie

2010-01-28 14:12:20

Android Act

2010-01-06 17:02:28

.Net Framew

2011-03-21 17:25:08

SQL Server数重复记录

2009-12-10 16:35:08

PHP操作文章列表

2010-03-23 16:30:47

Python文件复制

2024-10-11 12:00:00

Python批量文件操作

2009-12-16 11:04:51

Ruby操作文件权限

2010-03-04 14:39:52

Python读取输入值

2010-03-03 16:57:28

Python字符

2010-01-13 15:33:40

VB.NET菜单项目

2009-12-21 11:19:50

WCF配置文件

2010-01-15 19:04:09

2010-01-15 15:10:43

VB.NET Stri
点赞
收藏

51CTO技术栈公众号