0

画像が埋め込まれていない mp3 ファイルのディレクトリ全体をチェックするスクリプトが必要です。この関数は、そのようなリストを返す必要があります。

def checkAlbumCover( file_list ):
    ret = list() #list with mp3 files without album cover
    for f in file_list:
        mp3 = eyed3.load( f )
        if len( mp3.tag.images ) == 0:
            ret.append( f )
    return ret

別の関数を使用して、すべてのディレクトリとサブディレクトリを調べて、すべてのファイルパスを取得します。次に、mp3 ファイルかどうかを確認し、そうでない場合は削除します。最終的に、173 個の mp3 ファイルのリストができました (私の場合)。ファイルパスは正しいですが、上記の関数でエラーが発生します。

出力:

173 mp3 files found.
Traceback (most recent call last):
  File "get_album.py", line 32, in <module>
    main()
  File "get_album.py", line 18, in main
    list_without_image = checkAlbumCover( all_files )
  File "get_album.py", line 10, in checkAlbumArt
    if len( mp3.tag.images ) == 0: # 0 images embedded
AttributeError: 'NoneType' object has no attribute 'images'

私は何を間違えましたか?

編集:画像をチェックする前 に印刷しましfたが、関数がクラッシュする前に既に 20 個のファイルをチェックしているようです。

それを私が直した:

if mp3.tag is None: # 0 images embedded
    ret.append( f )

tagとはいえ、その理由はよくわかりませんNone...

4

1 に答える 1