使用eyeD3从Python中检索mp3文件中的歌词

时间:2013-04-24 01:52:38

标签: python mp3 mutagen eyed3

我目前正在尝试使用Python及其eyeD3库从mp3文件中提取歌词。歌词已经嵌入到mp3文件中(通过:MusicBee)。我正在尝试使用eyeD3来返回歌词。我无法弄清楚该怎么做。我已经在网上进行了广泛的搜索,我发现的所有内容都是教程,展示了如何设置歌词。我只是想从文件中读取它们。这是我目前的代码:

track = eyed3.load(path)
tag = track.tag
artist = tag.artist
lyrics = tag.lyrics

艺术家正确返回艺术家的姓名,但歌词会返回以下内容:

<eyed3.id3.tag.LyricsAccessor object at 0x27402d0>

如何将嵌入到mp3中的原始文本歌词返回?这可能吗?

非常感谢你。

4 个答案:

答案 0 :(得分:3)

看起来这是一个迭代器。试试

tag.lyrics[0]

for lyric in tag.lyrics:
  print lyric

最后的手段打印对象目录并寻找有用的功能

print dir(tag.lyrics)

答案 1 :(得分:2)

u"".join([i.text for i in tag.lyrics])

答案 2 :(得分:1)

这对我有用:

tag.lyrics[0].text

答案 3 :(得分:0)

DonJuma,Python告诉你:

<iterator object at hex_location> 

您可以尝试以下操作,但在字符串上失败

hasattr(myObj, '__iter__')

用户:mindu解释here您可以编写一个强大的函数来检查

try:
    some_object_iterator = iter(some_object)
except TypeError, te:
    print some_object, 'is not iterable'

BUT !!! 这不是Pythonic。 Python相信Duck Typing基本上说,“如果它看起来像鸭子,像鸭子那样嘎嘎叫,它一定是鸭子。”有关详细信息,请参阅链接。