我正在尝试通过截断子字符串前后的单词来重命名具有子字符串“Episode.26”的目录中的文件
例如'The.Vision.of.Escaflowne.Episode.26.Eternal.Love.1080p.Dual.Audio.Bluray [BC6DDF99].mkv'
要查找的值将始终是Episode.##(## 两位数)
期望的结果:Episode.26.mkv
当前结果:Episode.26.Eternal.Love.1080p.Dual.Audio.Bluray [BC6DDF99].mkv'
我使用 python 删除了前 n 个字符;但是,我不知道如何有效地隔离“Episode.26”
import os
key = "Episode."
for filename in os.listdir("."):
if(key in filename):
index = filename.index(key)
os.rename(filename, filename[index:])
最佳答案
如果您的文件名总是以句点分隔,则 split()
可能就足够了:
import os
ext = ".mkv"
ndl = "Episode"
for filename in os.listdir("."):
if ext in filename and ndl in filename:
num = filename.split(ndl, 1)[1].split(" ")[0].split(".")[1]
epi = "{}.{}{}".format(ndl, num, ext)
os.rename(filename, epi)
这应该在您的针 ("ndl
") 之后拆分名称,获取剧集编号并重命名文件;它还应该处理除句点之外还包含空格的文件名,或者如果“Episode.26”位于字符串的末尾(例如 Some.Movie.Episode.26 [BC6DDF99].mkv
)。
结果:
Episode.26.mkv
关于python - 如何将文件重命名为文件名中的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53966744/