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

最後の手段として、objects ディレクトリを出力して、便利な関数を探します

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 に答える
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 は、基本的に「アヒルのように見え、アヒルのように鳴く場合、それはアヒルに違いない」というダック タイピングを信じています。詳細については、リンクを参照してください。

于 2013-04-24T04:30:04.590 に答える