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

实现按数字自动归类文件至对应文件夹的脚本优化需求

批量归类剧集文件脚本优化方案

问题背景

现有Python脚本只能通过单数字参数执行(如move.py 1),将含对应数字标签的文件移动到同名文件夹(比如含ep1的文件移到Episode 1)。需要优化成支持指定起始和结束数字,自动批量完成所有剧集文件的归类。

优化后完整脚本

import os
import sys
import shutil

# 基础路径,用os.path相关方法处理更兼容不同系统
base_path = "/Users/Macbook/Final Cut Pro/"

def main():
    # 校验命令行参数格式
    if len(sys.argv) != 3:
        print("用法: python move.py <起始数字> <结束数字>")
        sys.exit(1)
    
    # 转换参数为整数,处理非数字输入的情况
    try:
        start_num = int(sys.argv[1])
        end_num = int(sys.argv[2])
    except ValueError:
        print("错误:起始和结束数字必须是整数")
        sys.exit(1)
    
    # 循环处理每个剧集编号
    for num in range(start_num, end_num + 1):
        episode_tag = f"ep{num}"
        dest_folder = os.path.join(base_path, f"Episode {num}")
        
        # 自动创建目标文件夹(不存在时)
        if not os.path.exists(dest_folder):
            os.makedirs(dest_folder)
        
        # 遍历所有子目录找目标文件
        for root, dirs, files in os.walk(base_path):
            # 跳过已经归类的文件夹,避免重复处理
            if root == dest_folder:
                continue
            
            for file_name in files:
                # 统一转小写避免大小写匹配问题
                if episode_tag in file_name.lower():
                    source = os.path.join(root, file_name)
                    dest = os.path.join(dest_folder, file_name)
                    
                    # 可选:避免覆盖已存在的文件
                    if os.path.exists(dest):
                        print(f"警告:{file_name} 已在目标文件夹中,跳过")
                        continue
                    
                    print(f"移动: {source} -> {dest}")
                    shutil.move(source, dest)

if __name__ == "__main__":
    main()

关键优化点说明

  • 命令行参数支持范围:现在可以通过python move.py 1 20直接处理1到20集的所有文件
  • 自动创建文件夹:不用手动提前创建Episode N文件夹,脚本会自动生成
  • 路径处理更可靠:用os.path.join替代手动拼接路径,适配不同操作系统的路径分隔符
  • 避免重复处理:遍历文件时跳过已创建的目标文件夹,防止重复移动
  • 错误处理:增加参数校验和非数字输入的报错提示,避免脚本崩溃
  • 大小写兼容:文件名转小写后匹配,不管是EP1还是ep1都能识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:40:39