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

问题描述 投票:2回答:4

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

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

artist正确返回艺术家的姓名,但lyrics返回以下内容:

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

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

非常感谢您。

python mp3 mutagen eyed3
4个回答
3
投票

似乎是一个迭代器。尝试

tag.lyrics[0]

for lyric in tag.lyrics:
  print lyric

最后打印对象目录并查找有用的功能

print dir(tag.lyrics)

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

0
投票

DonJuma,Python告诉您:

<iterator object at hex_location> 

您可以尝试以下操作,但无法在字符串上使用

hasattr(myObj, '__iter__')

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

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

BUT !!!这不是Pythonic。 Python相信Duck Typing的基本含义是:“如果它看起来像鸭子,而象鸭子一样嘎嘎叫,那一定是鸭子。”有关更多信息,请参见链接。


0
投票

这对我有用:

(tag.lyrics[0]).text
© www.soinside.com 2019 - 2024. All rights reserved.