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

安德烈斯

我试图通过截断子字符串前后的单词来重命名具有子字符串“ Episode.26”的目录中的文件

例如,“ 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Windows 10中,如何将文件重命名为包含带有变音符的字符的文件名?

将文件名中的特殊字符重命名为下划线

将文件名从大写重命名为小写

如何将文件名中带有“-yyyy mm dd hh mm”的所有文件重命名为日期/时间之前的部分?

如何匹配文件名中的字符串并根据字符串重命名文件?

将一组文件重命名为每个文件中都存在的字符串

如何将文件重命名为..(点点)?

如何在php中解析文件名并重命名为某个名称

帮助oneliner-创建随机文件,重命名为2个字符的文件名,并使用随机字符串填充

如何通过交换文件名中的子字符串来批量重命名文件?

重命名shellscript子字符串中的文件名

如何将文件重命名为其创建日期和哈希值相结合以实现唯一文件名?

如何将长字符串值自动重命名为更具可读性的字符串?

将隐藏文件重命名为它们的文件名,..(双点)

将文件重命名为带有文件名的列表

将文件重命名为文件名的前缀和中间部分

将文件重命名为已存在的文件名

将多个文件夹中的重复文件名重命名为另一个名称

如何将db中的值与python中文件名的子字符串匹配

如何使用哈希中的字符串值重命名文件名?

如何递归地将目录树重命名为有效的 Windows 文件名?

将图像重命名为exif时间:创建唯一的文件名

Bash:将文件名重命名为修改日期的unix时间戳

Windows CMD-如何将所有子文件夹中的所有文件重命名为父文件夹名称

如何将多个文件中的行复制到一个文件中,并将行命名为原始文件名

python将列中的字符串重命名为指定的字符串

OSX / MacOs 批量将十六进制文件名重命名为十进制文件名

在bash中重命名文件时重新排序文件名中的子字符串?

通过子字符串文件名批量重命名文件