Получить текст из mp3-файла на Python, используя eyeD3
В настоящее время я пытаюсь использовать Python и его библиотеку eyeD3 для извлечения текста из mp3-файла. Текст песни уже встроен в mp3-файл (через: MusicBee). Я пытаюсь использовать eyeD3, чтобы вернуть текст. Я не могу понять, как это сделать. Я много искал в Интернете, и все, что я нашел, это учебники, показывающие, как УСТАНОВИТЬ текст. Я просто хочу прочитать их из файла. Вот мой текущий код:
track = eyed3.load(path)
tag = track.tag
artist = tag.artist
lyrics = tag.lyrics
Artist возвращает имя исполнителя правильно, но текст возвращает следующее:
<eyed3.id3.tag.LyricsAccessor object at 0x27402d0>
Как я могу просто вернуть сырой текст песни, встроенный в mp3? Это возможно?
Большое спасибо в продвинутом.
3 ответа
Похоже, это итератор. Пытаться
tag.lyrics[0]
или же
for lyric in tag.lyrics:
print lyric
в крайнем случае распечатайте каталог объектов и найдите полезные функции
print dir(tag.lyrics)
DonJuma, Python говорит вам:
<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'
НО!!! Это не Pythonic. Python верит в Duck Typing, который в основном говорит: "Если он выглядит как утка и крякает как утка, значит, это утка". Смотрите ссылку для получения дополнительной информации.