You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量将子文件夹图片复制到父文件夹并删除指定子文件夹

解决方案

实现步骤

  • 遍历目标根目录下的301~600号文件夹
  • 提取每个父文件夹下的A子文件夹,将其中的图片文件复制到父文件夹
  • 复制完成后,删除当前父文件夹下的A、B子文件夹

完整代码

import os
import shutil

# 替换为包含301、302...600文件夹的根目录路径
ROOT_DIR = r"C:\存放目标文件夹的根目录"

# 遍历根目录下的所有子项
for parent_folder in os.listdir(ROOT_DIR):
    parent_path = os.path.join(ROOT_DIR, parent_folder)
    # 仅处理301到600之间的数字命名文件夹
    if not os.path.isdir(parent_path):
        continue
    try:
        folder_num = int(parent_folder)
        if not (301 <= folder_num <= 600):
            continue
    except ValueError:
        continue

    # 定义A、B子文件夹路径
    a_folder = os.path.join(parent_path, "A")
    b_folder = os.path.join(parent_path, "B")

    # 复制A文件夹内的图片文件到父文件夹
    if os.path.exists(a_folder):
        for filename in os.listdir(a_folder):
            file_path = os.path.join(a_folder, filename)
            # 筛选常见图片格式,可自行添加其他格式
            if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
                shutil.copy2(file_path, parent_path)
                print(f"已复制: {filename} -> {parent_folder}")

    # 删除A、B子文件夹
    if os.path.exists(a_folder):
        shutil.rmtree(a_folder)
        print(f"已删除文件夹: {a_folder}")
    if os.path.exists(b_folder):
        shutil.rmtree(b_folder)
        print(f"已删除文件夹: {b_folder}")

print("\n=== 所有操作执行完成 ===")

代码说明

  • ROOT_DIR:必须手动替换为实际存放301~600文件夹的根目录,用原始字符串(r开头)可避免路径转义问题
  • 图片格式筛选:代码包含了常见图片后缀,若需支持其他格式(如.webp),直接添加到后缀元组即可
  • 文件夹过滤:通过数字范围判断,自动跳过根目录下的非目标文件夹
  • 文件操作:使用shutil.copy2保留文件元信息,shutil.rmtree彻底删除文件夹及内部所有内容

内容的提问来源于stack exchange,提问作者dtr43

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 06:45:34