Python 脚本:查找并删除目录下重复文件
以下是一个 Python 程序,可以实现目录遍历,检查每个目录下是否有重复的文件,并仅保留一个文件。
import os
import hashlib
# 计算文件的 MD5 值
def get_md5(file_path):
with open(file_path, 'rb') as f:
md5_obj = hashlib.md5()
while True:
data = f.read(1024)
if not data:
break
md5_obj.update(data)
return md5_obj.hexdigest()
# 遍历目录
def traverse_dir(dir_path):
# 存储所有文件的 MD5 值
md5_dict = {}
for root, dirs, files in os.walk(dir_path):
for file_name in files:
file_path = os.path.join(root, file_name)
file_md5 = get_md5(file_path)
# 如果文件已经存在,则删除重复的文件
if file_md5 in md5_dict:
print('删除文件:', file_path)
os.remove(file_path)
else:
md5_dict[file_md5] = file_path
print('保留文件:', file_path)
if __name__ == '__main__':
dir_path = '/path/to/directory' # 指定要遍历的目录
traverse_dir(dir_path)
在这个程序中,我们使用 os.walk 函数遍历目录,并使用 hashlib 模块计算每个文件的 MD5 值。我们使用一个字典 md5_dict 存储所有文件的 MD5 值,如果一个文件的 MD5 值已经在字典中存在,则说明这个文件是重复的,我们就删除这个文件。否则,我们将这个文件的 MD5 值和文件路径存储到字典中。
原文地址: https://www.cveoy.top/t/topic/nfn0 著作权归作者所有。请勿转载和采集!