Python目录遍历去重:删除重复文件,保留唯一文件
以下是一个Python程序,可以实现目录遍历,并检查每个目录下是否有重复文件。如果存在重复文件,程序将保留其中一个文件,并删除其他重复文件。
import os
import hashlib
# 计算文件的MD5值
def md5(file):
hash_md5 = hashlib.md5()
with open(file, 'rb') as f:
for chunk in iter(lambda: f.read(4096), b''):
hash_md5.update(chunk)
return hash_md5.hexdigest()
# 遍历目录下的所有文件
def traverse_dir(directory):
files_dict = {}
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
file_md5 = md5(file_path)
if file_md5 in files_dict:
print('重复文件: ', file_path)
os.remove(file_path)
else:
files_dict[file_md5] = file_path
# 测试
if __name__ == '__main__':
traverse_dir('/path/to/directory')
在上面的代码中,我们使用了Python内置的hashlib模块来计算每个文件的MD5值,并将MD5值作为字典的键,文件路径作为值来存储每个文件。如果在遍历过程中发现重复的文件,则删除该文件。
原文地址: https://www.cveoy.top/t/topic/nfoj 著作权归作者所有。请勿转载和采集!