Извлечение текстов песен из mp3-файла на Python с помощью 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? Возможно ли это?

Большое вам спасибо заранее.

3 2

3 ответа:

Похоже, что это итератор. Попробуйте

tag.lyrics[0]

Или

for lyric in tag.lyrics:
  print lyric

В крайнем случае распечатайте каталог объектов и найдите полезные функции

print dir(tag.lyrics)

Донжума, питон говорит вам:

<iterator object at hex_location> 

Вы можете попробовать следующее, Но это не удается на строках

hasattr(myObj, '__iter__')

Пользователь: mindu объясняет здесь , что вы можете написать надежную функцию, которая проверяет

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

но!!! Это не весть. Питон верит втипирование утки , которое в основном говорит: "если он выглядит как утка и крякает как утка, это должна быть утка."Смотрите ссылку для получения дополнительной информации.

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