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

如何在Python判断前将XXxYY格式剧集文件名转为SXXEYY格式?

适配XXxYY格式的剧集文件名识别

原用于判断剧集的代码片段:

if search('[Ss][0-9]+[Ee][0-9]+', self.name) is not None:
    series = self.name + 'FIN'
    series = sub(' - [Ss][0-9]+[Ee][0-9]+.*?FIN', '', series)
    series = sub('[Ss][0-9]+[Ee][0-9]+.*?FIN', '', series)
    series = sub('FIN', '', series)
    series = transSERIES(series)
    url = 'http://www.thetvdb.com/api/GetSeries.php?seriesname=' + series + self.language
    self.getTVDbData(url, '0')

当前剧集文件格式为 ShowName - XXxYY.mkv(XX代表季数,YY代表集数),因格式不匹配无法被识别。无需重命名文件,可在判断前通过正则替换将格式转换为ShowName - SXXEYY,具体实现如下:

修改方案

  1. 确保已导入re模块(若未导入,在代码开头添加import re)
  2. 在原if判断前添加格式转换逻辑,创建修改后的文件名变量,后续判断及处理均基于该变量:

修改后的完整代码片段:

# 转换XXxYY格式为SXXEYY
modified_name = re.sub(r'(\d+)[Xx](\d+)', r'S\1E\2', self.name)

if search('[Ss][0-9]+[Ee][0-9]+', modified_name) is not None:
    series = modified_name + 'FIN'
    series = sub(' - [Ss][0-9]+[Ee][0-9]+.*?FIN', '', series)
    series = sub('[Ss][0-9]+[Ee][0-9]+.*?FIN', '', series)
    series = sub('FIN', '', series)
    series = transSERIES(series)
    url = 'http://www.thetvdb.com/api/GetSeries.php?seriesname=' + series + self.language
    self.getTVDbData(url, '0')

正则说明

  • r'(\d+)[Xx](\d+)':匹配连续数字(季数)+ 大小写X + 连续数字(集数)的模式
  • r'S\1E\2':将匹配到的内容替换为S+季数+E+集数的格式,其中\1和\2对应正则中两个括号捕获的季数和集数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:06:24