我将 PyDev 与 Eclipse 一起使用。Mutagen 通过 Anaconda 安装。我有 C 语言经验,但决定尝试一下 Python。不知道为什么这不起作用,而且 Mutagen 的例子并不多。这是一个简单的 mp3,我正在尝试从中读取标签。我检查了 Mutagen 规范,GEOB 类确实存在。但我不明白我错过了什么。这是我的 python 文件:import mutagenfrom mutagen.id3 import ID3audio = ID3("Test.mp3") #path: path to filetitleData = audio.get('TIT2')print(titleData)tagData = audio.get('GEOB') # returns None as a defaultprint(tagData) print("Done!")这是输出:Stupid SongNoneDone!我使用文件 Test.mp3 作为我的测试用例。如果我用十六进制编辑器打开,我会看到实际上有一个 GEOB 标签:所以我希望看到“无”以外的输出。任何帮助表示赞赏!
2 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
我既不知道 mutagen 也不知道 Python,但根据手册,任何文本框架(即您的TIT2
)都是基于mutagen.id3.TextFrame类,具有一个.text
属性。所以当你发出:
titleData = audio.get('TIT2')
...你实际上是这样做的:
titleData = audio.get('TIT2').text
考虑到这一点,现在看看mutagen.id3.GEOB:它没有任何这样的属性。这取决于你选择你想要得到什么——也许吧.desc
?
蓝山帝景
TA贡献1843条经验 获得超7个赞
要获取具有给定标识符的所有帧,方法调用是“getall”而不是“get”。以下方法返回歌曲标题和所有 GEOB 帧。
def get_tags_mutagen(filepath):
audio = ID3(filepath) #path: path to file
titleData = audio.getall('TIT2')
print("Song Title: ", titleData)
tagData = audio.getall('GEOB') # returns None as a default
for i in tagData:
print(i)
return tagData
- 2 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消