检测某一文件夹中有多少个相同的文件

import hashlib
import os

def md5_vaule(dir):
	hasher = hashlib.md5()
	afile = open(dir, 'rb')
	buf = afile.read()
	a = hasher.update(buf)
	return str(hasher.hexdigest())


def file_name(file_dir):
	all =[]
	for root, dirs, files in os.walk(file_dir):
		tmp = []
		# print('root_dir:', root)  # 当前目录路径
		# print('sub_dirs:', dirs)  # 当前路径下所有子目录
		# print('files:', files)  # 当前路径下所有非目录子文件
		for i in files:
			tmp.append(root+"\\"+i)
		for j in tmp:
			all.append(j)
		# print('\n')
	return all

if __name__ == '__main__':
	print("\n检测某一文件夹中有多少个相同的文件\n\n输入要检查的文件夹路径.如:C:\\test (注意:必须是斜杠“\\”)")
	folder_name = input()
	print("\n")
	file_names = file_name(folder_name)
	all_md5 = []
	for i in file_names:
		all_md5.append(md5_vaule(i))
		print(i)
	# for j in all_md5:
		# print(j)
	# print("\n")
	all_md5_set = list(set(all_md5))
	all_md5_set.sort(key = all_md5.index)
	# for k in all_md5_set:
		# print(k)
	print("有多少重复: ",len(all_md5)-len(all_md5_set))
	ENTER = input()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值