python - 如何将文件重命名为文件名中的子字符串?

标签 python

我正在尝试通过截断子字符串前后的单词来重命名具有子字符串“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/

相关文章:

python - 使用 Matplotlib 旋转矩阵

python - 使用 PySide 时如何有效地将数据从 NumPy 数组传输到 QPolygonF?

python - 如何将原始 Python 包上传到 PyPI?

python - Sklearn 中基于示例的 f 分数小于精度和召回率

python - 如何在 matplotlib 中创建作用于旋转方向的自定义 blended_transform?

python - 可怕的初始值 - 可变类型共享相同的引用?

python - 在 python 中重写 tuple.__len__

python - AttributeError: 'module' 对象没有属性

python - Instagram API python 用户后跟

python - Bokeh map 情节。纬度/经度到 x 和 y