2009-04-21 5 views
2

그래서, 여기 거래가 있습니다. mp3 (아티스트, 앨범, 노래 이름, 장르 등)에서 기본 id3 태그를 읽는 빠른 파이썬 스크립트를 작성하려고합니다. 파이썬 스크립트는 mutagen 라이브러리를 사용합니다 (당신이 더 좋은 라이브러리를 모른다면). 나는 각 mp3의 태그를 얻기 위해 재귀 적으로 디렉토리를 스캔하는 방법을 모르고 데이터베이스를 채운다. 또한 데이터베이스가 끝나는 한 가능한 한 솔리드로 만들고 싶습니다. 그래서 데이터베이스 자체를 디자인하는 방법에 대한 아이디어가 있다면 궁금합니다. 하나의 커다란 테이블을 사용해야할까요, 관계를 사용해야 할 것인가 등등. 관계형 데이터베이스는별로 좋지 않기 때문에 도움이됩니다. 오, 이건 리눅스 박스에서 돌아가고있어.PHP 프론트 엔드가있는 Python 스크립트 된 mp3 데이터베이스

답변

4

파이썬에서 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'] 
당신이 반복적으로 MP3 파일에 대한 디렉토리를 검색하려면

More info on ID3 module.

, 내장 된 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'] 

Reference.

를 만드는 측면에서 데이터베이스, 당신은 바퀴를 재발 명할 필요가 없습니다 (음악 데이터를 저장하는 것은 일반적인 데이터베이스 문제입니다) - Google earch가 도움이 될 것입니다. Here's one example.

+0

나는 데이터베이스 설계, 덕분에, 재귀 mp3 검색에 어떤 생각을 생각하지 못했습니까? – Specto