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

Python脚本开发求助:按文件名移动Zip文件至对应目录

批量移动Zip文件到对应目录的Python脚本

以下是适配你需求的完整实现脚本,针对给定的文件名规则和目标文件夹映射做了优化:

import os
import shutil

# 核心配置,按需修改
SOURCE_DIR = "./zip_files"  # 替换为存放所有Zip文件的实际路径
IDENTIFIER_MAP = {
    "CATPICC1": "Markky wool (CATPICC1)",
    "CATPICC2": "Markky wool (CATPICC2)"
}

def batch_move_zips():
    # 遍历源目录下所有文件
    for filename in os.listdir(SOURCE_DIR):
        if not filename.endswith(".zip"):
            continue
        
        # 按下划线拆分文件名,提取标识字段
        name_parts = filename.split("_")
        if len(name_parts) < 2:
            print(f"跳过格式异常文件: {filename}")
            continue
        
        identifier = name_parts[1]
        if identifier not in IDENTIFIER_MAP:
            print(f"无对应文件夹的标识: {identifier} (文件: {filename})")
            continue
        
        # 构造目标路径并确保文件夹存在
        target_folder = os.path.join(SOURCE_DIR, IDENTIFIER_MAP[identifier])
        os.makedirs(target_folder, exist_ok=True)
        
        # 执行移动操作
        source_path = os.path.join(SOURCE_DIR, filename)
        target_path = os.path.join(target_folder, filename)
        shutil.move(source_path, target_path)
        print(f"已移动: {filename} → {IDENTIFIER_MAP[identifier]}")

if __name__ == "__main__":
    batch_move_zips()

关键细节说明

  • 配置灵活:修改SOURCE_DIR指向你的Zip文件目录;后续新增标识和对应文件夹时,直接在IDENTIFIER_MAP字典中添加键值对即可。
  • 格式适配:通过split("_")拆分文件名,精准提取第2段的CATPICC1/CATPICC2标识,完全匹配你的文件名规则。
  • 容错处理:自动跳过非Zip文件、格式异常文件,以及无对应文件夹的标识文件,避免批量处理时中断。
  • 批量高效:原生遍历+移动逻辑,处理数千个文件性能无压力。

扩展优化(可选)

如果需要处理嵌套子目录中的Zip文件,可将遍历逻辑替换为os.walk:

for root, _, files in os.walk(SOURCE_DIR):
    for filename in files:
        if filename.endswith(".zip"):
            # 后续逻辑不变,仅需更新源文件路径
            source_path = os.path.join(root, filename)
            # ... 其余代码保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:05:22