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

如何识别剧集文件名中的季终集并添加Final后缀重命名?

剧集最后一集批量重命名解决方案

Python 实现方案

适合跨平台(Windows/macOS/Linux)使用,需提前安装Python环境。

核心逻辑:遍历目标目录下的剧集文件,用正则提取剧名、季数、集数信息,按季分组后找出每季集数最大的文件,添加- Final后缀完成重命名。

import os
import re

# 匹配你指定的文件名格式
pattern = re.compile(r'^([\w\d\s]+)_S(\d{2})E(\d{1,3})(\..+)$')
target_dir = "./"  # 替换为你的剧集文件实际目录

# 存储每季的最大集数文件:key为(剧名, 季数),value为(集数数值, 文件名)
season_files = {}

# 遍历目录下所有文件
for filename in os.listdir(target_dir):
    match = pattern.match(filename)
    if not match:
        continue  # 跳过不符合格式的文件
    
    show_name = match.group(1)
    season_num = match.group(2)
    episode_num = int(match.group(3))
    ext = match.group(4)
    
    key = (show_name, season_num)
    # 对比更新该季最大集数的文件
    if key not in season_files or episode_num > season_files[key][0]:
        season_files[key] = (episode_num, filename)

# 执行重命名操作
for (show_name, season_num), (ep_num, old_name) in season_files.items():
    new_name = f"{show_name}_S{season_num}E{ep_num} - Final{ext}"
    old_path = os.path.join(target_dir, old_name)
    new_path = os.path.join(target_dir, new_name)
    os.rename(old_path, new_path)
    print(f"已重命名:{old_name} → {new_name}")

使用说明:

  • 修改target_dir为你的剧集文件所在路径
  • 执行前建议备份文件,避免意外
  • 仅处理符合指定格式的文件,其他文件自动跳过

Bash 实现方案

适合Linux/macOS用户,无需额外安装工具,直接在终端运行。

核心逻辑:用find遍历文件,sed提取关键信息,sort按季和集数排序,awk筛选每季最后一集,最后批量重命名。

#!/bin/bash

TARGET_DIR="./"  # 替换为你的剧集目录

# 遍历文件、提取信息并筛选每季最后一集
find "$TARGET_DIR" -maxdepth 1 -type f -name "*_S[0-9][0-9]E[0-9]*" | while read -r file; do
    filename=$(basename "$file")
    # 提取剧名、季数、集数、后缀
    show_name=$(echo "$filename" | sed -E 's/^([\w\d\s]+)_S[0-9]{2}E[0-9]{1,3}\..+$/\1/')
    season=$(echo "$filename" | sed -E 's/^[\w\d\s]+_S([0-9]{2})E[0-9]{1,3}\..+$/\1/')
    episode=$(echo "$filename" | sed -E 's/^[\w\d\s]+_S[0-9]{2}E([0-9]{1,3})\..+$/\1/')
    # 输出排序用字段
    echo -e "$show_name\t$season\t$episode\t$filename"
done | sort -k1,1 -k2,2n -k3,3n | awk '
BEGIN { prev_show = ""; prev_season = "" }
{
    if ($1 != prev_show || $2 != prev_season) {
        if (prev_show != "") {
            print last_file
        }
        prev_show = $1
        prev_season = $2
    }
    last_file = $4
}
END { print last_file }
' | while read -r old_name; do
    # 构造新文件名并执行重命名
    new_name=$(echo "$old_name" | sed -E 's/(\..+)$/ - Final\1/')
    mv "$TARGET_DIR/$old_name" "$TARGET_DIR/$new_name"
    echo "已重命名:$old_name → $new_name"
done

使用说明:

  1. 将代码保存为rename_final_ep.sh
  2. 给脚本添加执行权限:chmod +x rename_final_ep.sh
  3. 修改TARGET_DIR为你的剧集目录
  4. 终端运行脚本:./rename_final_ep.sh
  5. 执行前建议备份文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:48:29