我目前正在尝试使用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中的原始文本歌词返回?这可能吗?
非常感谢你。
答案 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基本上说,“如果它看起来像鸭子,像鸭子那样嘎嘎叫,它一定是鸭子。”有关详细信息,请参阅链接。