截断文件名

2024-10-06 07:09:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我要截断以下格式的文件:

XX Artist - Song(blah blah).mp3

所以只有这样歌曲.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]

Tags: 文件songartist格式歌曲mp3filesplit
2条回答

您可以像这样使用regexp /- (/w+)\(/

在Python中是这样的

pattern = re.compile('- (?P<song>\w+)\(')

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

这不是一个很好的解决方案,但至少我们传递的文件与给定的文件名模式不匹配,如果您发现它不起作用,请返回并编辑问题,以便我们改进答案。在

相关问题 更多 >