1

我是一个完整的python菜鸟,所以请放轻松。

我目前正在破解/编辑一个名为伪库的 kodi 插件,以便它清理我正在抓取的流的标题,以便我可以将其放入更好看的 EPG 中。

目前它们看起来像这样:

[COLOR white]3E (Now - 07 - 30 That '70s Show) - .strm

我已经确定了在这里产生这个的代码:

FleName = (title + ' - ' + eptitle + '.strm').replace(":"," - ")
FleName = re.sub('[\/:*?<>|!@#$/:]', '', FleName)

并编辑如下(我知道很乱,我相信有更好的方法,正如我上面所说的,我是菜鸟!)

FleName = (title + '.strm').replace(":"," - ").replace("[COLOR white]","").replace("[COLOR blue]","")
FleName = re.sub('[\/:*?<>|!@#$/:]', '', FleName)

然后将上述标题更改为:

3E(现在 - 07 - 30 年 70 年代演出).strm

我真正想要的输出是:

3E.strm

我能找到的最接近我的问题的答案在这里:

https://stackoverflow.com/a/14599280

但是我也有括号内的括号要删除,上面并不能解决这个问题,例如

Zee Cinema (Now - 19 - 15 Baazigar (1993)).strm

我已经查看了 strip 以删除所有字符,包括“(现在”),但不能完全解决。请有人为我上面的问题提供一个通用的解决方案,以便标题是否是

[COLOR white]3E(现在 - 07 - 30 That '70s Show) - .strm OR

[COLOR white]Zee Cinema (Now - 19 - 15 Baazigar (1993)).strm

它只输出标题和.strm。所以在上面的例子中:

3E.strm
Zee Cinema.strm

非常感谢您寻找并希望能帮助我解决我的问题。

4

3 回答 3

4

FileName.split(']')[1].split('(')[0].strip() + ".strm"

于 2015-05-07T07:39:55.043 回答
2

所以你基本上你有某种形式的东西[something]text you want (something else).strm?解决这个问题的最简单方法是忽略打开之后(和扩展之前的所有内容:

re.sub(r"^[^\]]+\]([^(]+) \(.*\.strm$",r"\1.strm",FleName)

但是,请注意故障模式。由于在大多数情况下根本不更改文件名,这将导致格式不正确的文件名失败。在大多数情况下,克雷格会失败,但有一个例外。可以制定更复杂的解决方案来为更广泛的格式不正确的文件名引发异常,但这些解决方案都没有。

于 2015-05-07T07:41:15.553 回答
0

根据原始标题的模式,您似乎需要获取第一个 '](' 对之间的文本,去除空格并附加扩展名。这是一个示例:

originalFileName = "[COLOR white]3E (Now - 07 - 30 That '70s Show) - .strm"
fileName, fileExt = originalFileName.split(".")
newFileName = ".".join([re.search("\](.*?)\(", fileName).groups()[0].strip(), fileExt])
于 2015-05-07T08:22:02.380 回答