重命名文件名中随机结尾的 mp3 文件



我有一个文件夹,其中包含像这样命名的文件"艺术家 - 曲目XX XXX.mp3" 我正在尝试做的是将文件重命名为"艺术家 - 曲目.mp3">

文件的最后一部分将始终以以下之一开头:
[1B, 2B, 3B, 4B, 5B, 6B, 7B, 8B, 9B, 10B, 11B, 12B, 1A, 2A, 3A, 4A, 5A, 6A, 7A, 8A, 9A, 10A, 11A, 12A]

那么如何删除"XX XXX"并保留其余部分呢?

import re, glob, os
os.chdir("C:\Somepath")
for filename in glob.glob("**/*.mp3", recursive = True):
filename = re.match(r"(?P<filename>w+).*.(?P<ext>.+)", filename)
filename = "{}.{}".format(filename.group('filename'), filename.group('ext'))
print(filename)

它只输出第一个文件的第一个艺术家名称:
艺术家.mp3
艺术家.mp3艺术家.mp3

我在这里缺少的其余是什么,根本无法弄清楚如何解决这个问题..

与文件名匹配的正则表达式组只允许单词 (w) 字符,因此它停止在第一个空格处。而不是

filename = re.match(r"(?P<filename>w+).*.(?P<ext>.+)", filename)

尝试

filename = re.match(r"(?P<filename>.+)s+d{1,2}[AB].*.(?P<ext>.+)", filename)

这将使文件名组将所有内容与第一个"XX"匹配。后者由空格组成,后跟一位或两位数字,后跟AB.

最新更新