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

请求编写批量重命名文件脚本:保留LC前缀交换分隔符前后内容

批量重命名文件:交换分隔符前后内容的实现方案

没问题,这个需求很明确,我给你准备了几个不同平台的实现方案,你可以根据自己的操作系统来选择,都能精准完成你要的「保留前3个字符LC ,交换-分隔符前后内容」的要求:

一、跨平台Python脚本(推荐,Windows/macOS/Linux通用)

这个方案兼容性最好,不管你用什么系统都能跑,而且逻辑清晰,容易调整:

  1. 把下面的代码保存为rename_files.py,放到你要处理文件的文件夹里(或者修改脚本里的target_dir路径)
  2. 先运行预览模式(脚本默认是打印新文件名,不实际重命名),确认没问题后,把print(f"将重命名: {old_name} → {new_name}")这行注释掉,取消os.rename(old_path, new_path)的注释
import os

# 目标文件夹路径,当前目录就用'.'
target_dir = '.'

for old_name in os.listdir(target_dir):
    # 跳过文件夹,只处理文件
    old_path = os.path.join(target_dir, old_name)
    if not os.path.isfile(old_path):
        continue
    
    # 检查文件名是否符合格式:以"LC "开头,且包含" - "分隔符
    if not old_name.startswith("LC ") or " - " not in old_name:
        continue
    
    # 拆分文件名和扩展名
    filename, ext = os.path.splitext(old_name)
    # 去掉前3个字符"LC ",获取后面的内容
    content = filename[3:]
    # 按" - "拆分,只拆一次(避免内容里有相同分隔符)
    try:
        part1, part2 = content.split(" - ", 1)
    except ValueError:
        # 如果拆分失败(比如多个分隔符但无法分成两部分),跳过该文件
        print(f"跳过不符合格式的文件: {old_name}")
        continue
    
    # 构建新文件名
    new_name = f"LC {part2} - {part1}{ext}"
    new_path = os.path.join(target_dir, new_name)
    
    # 检查新文件是否已存在,避免覆盖
    if os.path.exists(new_path):
        print(f"跳过:{new_name} 已存在")
        continue
    
    # 预览模式:打印重命名信息,确认后取消下面一行注释,注释掉print行
    print(f"将重命名: {old_name} → {new_name}")
    # os.rename(old_path, new_path)

二、Windows PowerShell脚本

如果你用Windows,直接用PowerShell更方便,不用装Python:

  1. 打开PowerShell,切换到目标文件夹(比如cd D:\Your\File\Folder)
  2. 复制下面的代码运行,先看预览(加了-WhatIf参数,不会实际重命名),确认没问题后去掉-WhatIf
Get-ChildItem -Filter "LC *.pdf" | ForEach-Object {
    # 匹配文件名格式:LC 内容1 - 内容2
    if ($_.BaseName -match '^LC (.+) - (.+)$') {
        $newName = "LC $($matches[2]) - $($matches[1])$($_.Extension)"
        # 预览模式,去掉-WhatIf执行实际重命名
        Rename-Item -Path $_.FullName -NewName $newName -WhatIf
    }
}

三、Linux/macOS Bash脚本

对于Linux或macOS用户,用终端的Bash脚本最快捷:

  1. 打开终端,切换到目标文件夹(cd /path/to/your/folder)
  2. 把下面的代码保存为rename.sh,然后运行chmod +x rename.sh赋予执行权限
  3. 先运行./rename.sh看预览(用echo打印),确认后把echo换成mv
#!/bin/bash

# 遍历当前目录下所有以"LC "开头的pdf文件
for file in "LC "*.pdf; do
    # 跳过不存在的文件(避免通配符不匹配的情况)
    [ -f "$file" ] || continue
    
    # 拆分文件名和扩展名
    filename="${file%.*}"
    ext="${file##*.}"
    
    # 去掉前3个字符"LC "
    content="${filename:3}"
    
    # 检查是否包含" - "分隔符
    if [[ "$content" == *" - "* ]]; then
        # 拆分分隔符前后的内容
        part1="${content%% - *}"
        part2="${content##* - }"
        new_filename="LC $part2 - $part1.$ext"
        
        # 预览模式,确认后把echo换成mv -n(-n避免覆盖)
        echo "重命名: $file → $new_filename"
        # mv -n "$file" "$new_filename"
    fi
done

重要注意事项

  • 先备份文件:不管用哪个方案,都建议先把要处理的文件复制一份备份,避免意外
  • 先预览再执行:所有脚本都提供了预览模式,一定要先确认重命名结果符合预期,再执行实际的重命名操作
  • 跳过不符合格式的文件:脚本会自动跳过不符合LC X - Y.ext格式的文件,不会误处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:43:43