为了账号安全,请及时绑定邮箱和手机立即绑定

Python 3.8 Mutagen 无法读取 GEOB 标签

Python 3.8 Mutagen 无法读取 GEOB 标签

PHP
不负相思意 2023-11-09 21:13:04
我将 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

查看完整回答
反对 回复 2023-11-09
?
蓝山帝景

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


查看完整回答
反对 回复 2023-11-09
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信