如何使用 python 命名 mp3 的元数据?
How do I name metadata for mp3's with python?
我有一些包含 MP3 文件的文件夹,这些文件不包含任何元数据,但文件名本身包含一些数据。
我想将标题中的数据复制到文件中 meta-data。
我已经拥有的:
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
它打印的内容:
John Williams - S.W. Ep. IV - CD 1 - 01 - 20th Century Fox Fanfare.mp3
John Williams - S.W. Ep. IV - CD 1 - 01 - 20th Century Fox Fanfare
['John Williams', 'S.W. Ep. IV', ' CD 1', '01', '20th Century Fox Fanfare']
它给出了这个错误:
TypeError: initTag() got an unexpected keyword argument 'Artist'
如何从标题中获取我在列表中解析的数据作为文件的元数据。
我还希望能够在我拥有的任何文件夹中复制并粘贴 .py 文件并执行它。
如果您查看 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()
希望对您有所帮助!
我有一些包含 MP3 文件的文件夹,这些文件不包含任何元数据,但文件名本身包含一些数据。
我想将标题中的数据复制到文件中 meta-data。
我已经拥有的:
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
它打印的内容:
John Williams - S.W. Ep. IV - CD 1 - 01 - 20th Century Fox Fanfare.mp3
John Williams - S.W. Ep. IV - CD 1 - 01 - 20th Century Fox Fanfare
['John Williams', 'S.W. Ep. IV', ' CD 1', '01', '20th Century Fox Fanfare']
它给出了这个错误:
TypeError: initTag() got an unexpected keyword argument 'Artist'
如何从标题中获取我在列表中解析的数据作为文件的元数据。
我还希望能够在我拥有的任何文件夹中复制并粘贴 .py 文件并执行它。
如果您查看 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()
希望对您有所帮助!