如何用python命名mp3的元数据?

2024-06-28 20:29:30 发布

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

我有一些文件夹的MP3文件不包括任何元数据,但在文件名本身包含一些数据。在

我想将标题中的数据作为元数据复制到文件中。在

我已经拥有:

import eyed3.mp3
import os

local = os.getcwd()+"\\"
for file in os.listdir(local):
    while os.path.basename(file)[-4:len(os.path.basename(file))] == ".mp3":
        original = os.path.basename(file)
        print(original)
        original2 = original[0:-4]
        print(original2)
        list = original2.split(" - ")
        print(list)
        f = eyed3.load(file)
        class Mp3AudioFile(f):
            f.initTag(Artist=(list[0]))
            f.initTag(Album=(list[1]+list[2]))
            f.initTag(TrackNumber=(list[3]))
            f.initTag(Title=(list[4]))
        break

打印内容:

^{pr2}$

它给出了以下错误:

TypeError: initTag() got an unexpected keyword argument 'Artist'

如何从列表中解析的标题中获取数据,作为文件的元数据。在

我还希望能够复制并粘贴.py文件,并在我拥有的任何文件夹中执行它。在


Tags: 文件数据pathimport文件夹标题oslist
1条回答
网友
1楼 · 发布于 2024-06-28 20:29:30

如果您看一下documentation,initTag的唯一kwargs是tag_version。因此无法通过此函数设置艺术家、标题、曲目编号或唱片集。在

可以按如下方式设置值:

f = eyed3.load(file)
f.tag.artist = unicode(list[0])
f.tag.album = unicode(' '.join(list[1]+list[2]))
f.tag.track_num = int(list[3])
f.tag.title = unicode(list[4])
f.tag.save()

希望这有帮助!在

相关问题 更多 >