以下是一个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值作为字典的键,文件路径作为值来存储每个文件。如果在遍历过程中发现重复的文件,则删除该文件。

Python目录遍历去重:删除重复文件,保留唯一文件

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

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