我想截断以下格式的文件:
XX艺术家 - 宋(等等).mp3
所以只剩下Song.mp3了。
艺术家和歌曲都可能包含空格和连字符。我正在使用拆分,但它没有用。 这是我的代码:
for file in os.listdir(path):
if file.endswith('.mp3'):
original = file
t1 = original.split("(")[0] + ".mp3"
t2 = t1.split("-")[1]
t3 = t2.split(" ")[1]
答案 0 :(得分:1)
关注EAFP,我们可以编写类似
的内容import os
AUDIO_FILES_EXTENSIONS = {'.mp3'}
for file_name in os.listdir(path):
base_name, extension = os.path.splitext(file_name)
if extension in AUDIO_FILES_EXTENSIONS:
try:
artist_w_song, _ = file_name.split("(")
artist, song = artist_w_song.split(" - ")
except ValueError:
print('File "' + file_name + '" doesn\'t match the pattern')
continue
t3 = song + extension
# do work
这不是一个很好的解决方案,但至少我们正在传递与给定文件名模式不匹配的文件,如果您发现它不起作用 - 返回并编辑问题,以便我们可以改进我们的答案。
答案 1 :(得分:0)
您可以使用此/- (/w+)\(/
将是
pattern = re.compile('- (?P<song>\w+)\(')