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

如何编写Bash或Python脚本自动化批量处理符合命名规则的目录及文件

自动化处理方案

下面分别提供Bash和Python两种实现方案,均直接放在待处理目录的同级路径下运行即可。

Bash 脚本方案

#!/bin/bash

# 替换为你实际的目标根路径,对应你操作里的 /path/to/
TARGET_ROOT="/path/to/"

# 自动创建done目录,避免不存在报错
mkdir -p done

# 遍历当前目录下所有子目录,跳过done目录
for dir in */; do
    [[ "$dir" == "done/" ]] && continue
    # 去掉目录名末尾的斜杠
    dir_name=${dir%/}
    
    # 按空格拆分目录名,提取DIR类型和File序号
    IFS=' ' read -r _ _ dir_type file_part file_num _ <<< "$dir_name"
    new_filename="${file_part} ${file_num}.ext"
    
    # 进入目录执行文件操作,用子shell避免频繁切换当前工作目录
    (
        cd "$dir_name" || exit 1
        # 可选:加判断跳过不存在something.ext的目录
        # [[ -f something.ext ]] || exit 0
        mv something.ext "$new_filename"
        cp "$new_filename" "${TARGET_ROOT}${dir_type}/"
    )
    # 处理完成后移动到done目录
    mv "$dir_name" done/
done

首次运行可以先把mv、cp命令前加echo,确认输出的命令逻辑符合预期后再去掉echo正式执行。

Python 脚本方案

import os
import shutil

# 替换为你实际的目标根路径
TARGET_ROOT = "/path/to/"
DONE_DIR = "done"

os.makedirs(DONE_DIR, exist_ok=True)

# 遍历当前目录下的所有条目
for entry in os.scandir("."):
    # 跳过非目录和done目录
    if not entry.is_dir() or entry.name == DONE_DIR:
        continue
    dir_name = entry.name
    # 拆分目录名判断格式是否匹配
    name_parts = dir_name.split(" ")
    if len(name_parts) < 6:
        continue
    
    dir_type = name_parts[2]
    new_filename = f"{name_parts[3]} {name_parts[4]}.ext"
    
    src_file = os.path.join(dir_name, "something.ext")
    new_file_path = os.path.join(dir_name, new_filename)
    target_file_path = os.path.join(TARGET_ROOT, dir_type, new_filename)
    
    # 可选:加判断跳过不存在目标文件的目录
    # if not os.path.exists(src_file):
    #     continue
    
    os.rename(src_file, new_file_path)
    shutil.copy2(new_file_path, target_file_path)
    shutil.move(dir_name, os.path.join(DONE_DIR, dir_name))

可选优化点

  • 可以添加执行日志,记录每一步操作结果,方便后续排查问题
  • 如果需要批量处理增量目录,可搭配crontab定时运行脚本,实现全自动化处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:45:05