2

それで、これが取引です。MP3 (アーティスト、アルバム、曲名、ジャンルなど) から基本的な id3 タグを読み取る簡単な python スクリプトを作成しようとしています。python スクリプトは、おそらく変異原ライブラリを使用します (より良いライブラリを知らない限り)。ディレクトリを再帰的にスキャンして各 mp3 のタグを取得し、データベースに入力する方法がわかりません。また、データベースに関しては、できるだけしっかりしたものにしたいので、データベース自体をどのように設計すればよいか、アイデアがあれば教えてください。大きなテーブルを 1 つだけ使用する必要があるか、特定の関係を使用する必要があるかなど。リレーショナル データベースはあまり得意ではないので、助けていただければ幸いです。ああ、これはLinuxボックスで実行されています。

4

1 に答える 1

4

PythonでID3タグの抽出を開始するには、そのためのモジュールがあります。

from ID3 import ID3

mp3_filepath = r'/music/song.mp3'
id3_data = ID3(mp3_filepath)
print 'Artist:', id3_data['ARTIST']
print 'Title:', id3_data['TITLE']

ID3モジュールの詳細。

ディレクトリでmp3ファイルを再帰的に検索する場合は、組み込みosモジュールで次のことができます。

import os

def mp3_files(root):
  # this is a generator that will return mp3 file paths within given dir
  for f in os.listdir(root):
      fullpath = os.path.join(root,f)
      if os.path.isdir(fullpath) and not os.path.islink(fullpath):
          for x in mp3_files(fullpath):  # recurse into subdir
              yield x
      else:
          if fullpath[len(fullpath)-3:] == 'mp3':
            yield fullpath

for p in mp3_files(root_dir):
  id3_data = ID3(p)
  print 'Artist:', id3_data['ARTIST']
  print 'Title:', id3_data['TITLE']

参照。

データベースの作成に関しては、車輪の再発明をする必要はありません(音楽データの保存はデータベースの一般的な問題です)。Google検索が役に立ちます。 これが1つの例です。

于 2009-04-21T20:53:35.360 に答える