0

MP3 ファイルに関する情報を Unicode で表示する audio という辞書があります。str() を使用して、アルバムとタイトルの値を文字列に変換しました。

alb = []
trck = []
audio = MP3(fullname)

albums = (str(audio['TALB'])) #TALB is the album key
tracks = (str(audio['TIT2'])) #Track key
trck = trck.append(tracks)
alb = alb.append(album)

6 行目以降の結果を印刷すると、5000 以上の曲のすべてのアルバムとトラックのタイトルが表示されます。その後、トラックとアルバムを別のリストに追加したいので、append() を使用しますが、エラーが発生します。代替手段はありますか?また、 .iteritem() を使用して dict から直接リストを作成しようとしましたが、すべての値がユニコードであるため、整理するのが難しくなります。さらに、.mp3 ファイルごとに個別の配列を作成します。

私はPythonに比較的慣れていないので、私の問題に関する助けをいただければ幸いです。

より詳しい情報:

オーディオ辞書を印刷すると、次のようなものが約 5000 行以上表示されます。

{'TDRC': TDRC(encoding=3, text=[u'1993']), 'TIT2': TIT2(encoding=3, text=[u'All I Wanna     Do']), 'TRCK': TRCK(encoding=3,
text=[u'9']), 'TPE1': TPE1(encoding=3, text=[u'Sheryl Crow']), 'TALB': TALB(encoding=3,     text=[u'Tuesday Night Music Club
']), 'TSSE': TSSE(encoding=3, text=[u'Xiph.Org libVorbis I 20070622']), 'TCON':     TCON(encoding=3, text=[u'Rock'])}

したがって、すべての TIT2 キーに対して str() を使用した後、それを出力すると、オーディオ ディクショナリ内のすべての TIT2 キーの値のみが得られます。

Tricky Kid
Vent
A Groovy Kind Of Love
Do You know The Way To San Jose?
Jamaica
I (Who Have Nothing)
River Deep - Mountain High
Spanish Harlem
Ten Lonely Guys
Will You Love Me Tomorow
Cry
In The Sand
Michel
My Friend
The Dark
Let It Ride
Urban Solitude
Be A Man

等々。次に、これらの結果を空のリスト trck[] に追加してみます。

trck.append(tracks)
print trck

これを印刷すると、次のようになります。

['Tricky Kid']
['Vent']
['A Groovy Kind Of Love']
['Do You know The Way To San Jose?']
['Jamaica']
['I (Who Have Nothing)']
['River Deep - Mountain High']
['Spanish Harlem']
['Ten Lonely Guys']
['Will You Love Me Tomorow']
['Cry']
['In The Sand']
['Michel']
['My Friend']
['The Dark']
['Let It Ride']
['Urban Solitude']
['Be A Man']

track[0] を印刷すると、5000 曲すべてが表示されますが、trck[1] は範囲外です。どうすればこれを修正できますか?

4

1 に答える 1

3

リストのappendメソッドは、リストをその場で変更し、 を返しますNone。を使用する場合は割り当てを削除します。appendつまり、trck.append(tracks)の代わりに使用trck = trck.append(tracks)します。そうしないと、変数が に割り当てられNone、リストが失われます。

于 2013-10-04T23:52:17.013 に答える