以下是基于Python代码实现按照文件MD5进行文件去重的示例:
import hashlib
import os
def get_file_md5(file_path):
try:
with open(file_path, 'rb') as f:
md5 = hashlib.md5(f.read()).hexdigest()
except:
print(file_path)
return None
return md5
def remove_duplicate_files(md5_list):
result = []
for md5, file_path in md5_list:
if md5 not in result:
result.append(md5)
else:
print(file_path)
os.remove(file_path)
return result
# 示例
md5_list = []
import glob
file_path_all = glob.glob("文件夹地址")
print(len(file_path_all))
for file_path in file_path_all:
md5 = get_file_md5(file_path)
if md5:
md5_list.append((md5, file_path))
unique_md5s = remove_duplicate_files(md5_list)
print(unique_md5s)
print(len(unique_md5s))
该示例中,首先定义了一个get_file_md5
函数,用于获取文件的MD5值。然后定义了一个remove_duplicate_files
函数,该函数接受一个MD5列表,返回一个不包含重复项的列表。该函数使用os.listdir
函数获取目录中的所有文件名,然后使用get_file_md5
函数获取每个文件的MD5值,并将其添加到md5_list
列表中。最后,该函数返回不包含重复项的MD5列表。
在示例中,将md5_list
传递给remove_duplicate_files
函数,并将结果打印到控制台上。