python對文件夾內文件去重


  昨天無聊寫了一個百度圖片爬蟲,測試了一下搜索“斗圖”。一下給我下了3000多個圖片,關鍵是有一半以上重復的。what a fuck program !

  好吧,今天寫一個文件去重功能,貼上來。

 

  python3.6開發,在Windows下需要安裝vc2015動態庫。程序已經打包好,下載地址: http://pan.baidu.com/s/1bpalugf 密碼:kfk4

 

#/usr/bin/env python
#Guoyabin
#-*- coding:utf-8 -*-
import os,hashlib

def filecount():
	filecount=int(os.popen('dir /B |find /V /C ""').read())
	return(filecount)

def md5sum(filename):
	f=open(filename, 'rb')
	md5=hashlib.md5()
	while True:
		fb = f.read(8096)
		if not fb:
			break
		md5.update(fb)
	f.close()
	return (md5.hexdigest())

def delfile():
	all_md5={}
	filedir=os.walk(os.getcwd())
	for i in filedir:
		for tlie in i[2]:
			if md5sum(tlie) in all_md5.values():
				os.remove(tlie)
			else:
				all_md5[tlie]=md5sum(tlie)

if __name__=='__main__':
	keyword=input('\n請把本程序放到要去重的文件夾內,並按回車繼續\n\n')
	oldf=filecount()
	print('去重前有',oldf,'個文件\n\n\n請稍等正在為您刪除重復文件...')
	delfile()
	print('\n\n去重后剩',filecount(),'個文件')
	print('\n\n一共幫您刪除了',oldf-filecount(),'個文件\n\n')
	keyword=input('請按回車退出')

 

 

 

無恥的求一下贊助


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM