使用 Python 对电视节目标题进行字符串操作

String manipulation for TV Show titles using Python

我有一个包含文件名的字符串,该文件名通常包含剧季、剧集、质量和发行信息。我正在尝试删除季节和剧集之后不需要的文本区域。到目前为止,我已经设法将它们放在一起:

#!/usr/bin/env python

import re

filenames = [
    "remy.and.papoose.meet.the.mackies.s01e01.1080p.web.x264-tbs", 
    "remy.and.papoose.meet.the.mackies.s01e01.1080p.web.x264-tbs", 
    "Bodyguard.S01E10.720p.iP.WEB-DL.AAC2.0.H.264-BTN", 
    "Empire.2015.S05E01.Steal.From.the.Thief.1080p.AMZN.WEB-DL.DD.5.1.H.264-AJP69", 
    "Better.Call.Saul.S04E09.720p.HDTV.x264-AVS"
]

for filename in filenames:

    filename = filename.replace(".", " ").lower()
    stringRemove = re.sub('.*[s|S][0-9]{2}[e|E][0-9]{2}', '', filename)
    cleanFilename = filename.replace(stringRemove, "")

    print(cleanFilename)

此代码有效。

编辑:我想知道我是否可以改进正则表达式以捕获我可能没有想到的文件名字符串的任何变体?有没有人必须对名称中包含季节、剧集、质量和发布的文件名进行字符串替换?

我已经回答了我自己的问题并更新了它以使用示例代码反映这一点。

#!/usr/bin/env python

import re

filenames = [
    "remy.and.papoose.meet.the.mackies.s01e01.1080p.web.x264-tbs", 
    "remy.and.papoose.meet.the.mackies.s01e01.1080p.web.x264-tbs", 
    "Bodyguard.S01E10.720p.iP.WEB-DL.AAC2.0.H.264-BTN", 
    "Empire.2015.S05E01.Steal.From.the.Thief.1080p.AMZN.WEB-DL.DD.5.1.H.264-AJP69", 
    "Better.Call.Saul.S04E09.720p.HDTV.x264-AVS"
]

for filename in filenames:

    filename = filename.replace(".", " ").lower()
    stringRemove = re.sub('.*[s|S][0-9]{2}[e|E][0-9]{2}', '', filename)
    cleanFilename = filename.replace(stringRemove, "")

    print(cleanFilename)