Python 代码:遍历目录并删除重复文件 (保留最短文件名)

该代码实现遍历指定目录,检查每个目录下是否有重复的文件,并删除重复的文件,只保留文件名最短的1个。

import os

def remove_duplicate_files(directory):
    '检查目录中是否有重复的文件,删除重复的文件只保留文件名最短1个'
    files_dict = {}  # 用字典存储每个文件名及其对应的路径
    for root, dirs, files in os.walk(directory):
        for file in files:
            file_path = os.path.join(root, file)
            file_name = os.path.basename(file)
            if file_name not in files_dict:
                files_dict[file_name] = file_path
            else:
                # 如果已经有同名文件,则比较文件名长度,保留长度最短的文件
                if len(file_name) < len(os.path.basename(files_dict[file_name])):
                    os.remove(files_dict[file_name])
                    files_dict[file_name] = file_path
                else:
                    os.remove(file_path)

# 示例使用
remove_duplicate_files('path/to/directory')

代码解释:

  1. 函数 remove_duplicate_files(directory) 接收目录路径作为参数。
  2. 使用 os.walk() 遍历目录中的所有文件。
  3. 使用字典 files_dict 存储每个文件名及其对应的路径。
  4. 如果遇到同名文件,则比较文件名长度,保留长度最短的文件,删除其他重复文件。
  5. 使用 os.remove() 删除重复的文件。

示例使用:

'path/to/directory' 替换为需要检查的实际目录路径即可。

注意:

  • 该代码仅保留每个文件名最短的1个,如果有多个文件名长度相同,则只保留其中一个。
  • 执行代码前请备份重要数据,避免误删文件。
Python 代码:遍历目录并删除重复文件 (保留最短文件名)

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

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