以下是一个 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 值和文件路径存储到字典中。

Python 脚本:查找并删除目录下重复文件

原文地址: https://www.cveoy.top/t/topic/nfn0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录