如何在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,具体实现如下:
修改方案
- 确保已导入
re模块(若未导入,在代码开头添加import re) - 在原
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
相关产品推荐
相关产品推荐

