3

我目前正在尝试使用 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

4 回答 4

5

看起来那是一个迭代器。尝试

tag.lyrics[0]

或者

for lyric in tag.lyrics:
  print lyric

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

print dir(tag.lyrics)
于 2013-04-24T02:34:56.103 回答
2
u"".join([i.text for i in tag.lyrics])
于 2014-06-02T09:51:52.067 回答
2

这对我有用:

tag.lyrics[0].text
于 2020-03-29T06:25:10.330 回答
0

DonJuma,Python 告诉你:

<iterator object at hex_location> 

您可以尝试以下方法,但在字符串上失败

hasattr(myObj, '__iter__')

user:mindu在这里解释说,您可以编写一个健壮的函数来检查

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

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

于 2013-04-24T04:30:04.590 回答