Python查找重復文件相關操作方式分享
作者:佚名
Python查找重復文件的實現,可以輕松的幫助我們處理硬件中重復文件出現的問題。我們將會在這里針對這一技術做一個詳細介紹。
當我們在使用硬盤存放資料的時候,通常情況下,時間一久,就會出現一些垃圾文件以及重復文件的出現,那么該怎樣才能很好的處理這一問題呢?今天我們就可以利用Python來編寫一個工具幫助我們解決。那么,就讓我們一起看看Python查找重復文件的相關實現方法吧。#t#
Python查找重復文件主要思路如下:
1. 查找同命文件
2. 利用了crc32,先檢查出同樣尺寸的文件,再計算crc32,得出相同的文件名列表。
下面是轉載的一個Python查找重復文件的代碼,雖然可以滿足要求,但是在查找大量文件時候,速度很慢,我抽空把它調優。
- #!/usr/bin/env python
- #coding=utf-8
- import binascii, os
- filesizes = {}
- samefiles = []
- def filesize(path):
- if os.path.isdir(path):
- files = os.listdir(path)
- for file in files:
- filesize(path + "/" + file)
- else:
- size = os.path.getsize(path)
- if not filesizes.has_key(size):
- filesizes[size] = []
- filesizes[size].append(path)
- def filecrc(files):
- filecrcs = {}
- for file in files:
- f = open(file, "r")
- 23 crc = binascii.crc32(f.read())
- 24 f.close()
- if not filecrcs.has_key(crc):
- filecrcs[crc] = []
- filecrcs[crc].append(file)
- for filecrclist in filecrcs.values():
- if len(filecrclist) > 1:
- samefiles.append(filecrclist)
- if __name__ == '__main__':
- path = r"J:\My Work"
- filesize(path)
- for sizesamefilelist in filesizes.values():
- if len(sizesamefilelist) > 1:
- filecrc(sizesamefilelist)
- for samfile in samefiles:
- print "****** same file group ******"
- for file in samefile:
- print file
以上就是對Python查找重復文件的相關介紹。
責任編輯:曹凱
來源:
博客園