把几个文件夹里的文件汇总成一个文件夹

本文介绍了一个使用Python编写的函数,它遍历指定的源文件夹,将其中具有相同名称的文件汇总到目标文件夹中,并为重名文件自动添加序号。通过`os`和`shutil`库实现文件复制和处理。
摘要由CSDN通过智能技术生成

把几个文件夹里的文件汇总成一个文件夹,相同名称的文件在后面加序号 

import os
import shutil


def copy_files_with_unique_names(source_dirs, target_dir):
    os.makedirs(target_dir, exist_ok=True)

    # 遍历每个源文件夹
    for source_dir in source_dirs:
        for filename in os.listdir(source_dir):
            # 构建源文件的完整路径
            source_path = os.path.join(source_dir, filename)

            if os.path.isfile(source_path):
                # 构建目标文件的完整路径
                target_path = os.path.join(target_dir, filename)

                # 检查文件是否已存在
                if os.path.exists(target_path):
                    # 如果文件已存在,添加序号
                    base, ext = os.path.splitext(filename)
                    counter = 1
                    while True:
                        new_filename = f"{base}({counter}){ext}"
                        new_target_path = os.path.join(target_dir, new_filename)
                        if not os.path.exists(new_target_path):
                            target_path = new_target_path
                            break
                        counter += 1

                        # 复制文件
                shutil.copy2(source_path, target_path)

source_dirs = [
    "IMG_1765",
    "IMG_1766",
    "IMG_1777",
    "IMG_1778",
    "IMG_1779",
    "IMG_1780",
    "IMG_1781",
    "IMG_1782",
    "IMG_1783",
    "IMG_1784"
]
target_dir = "集合"

copy_files_with_unique_names(source_dirs, target_dir)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值