2010-11-26 3 views
1

내 mp3 파일에서 이것을 달성하는 방법.Python을 사용하여 mp3 파일에서 불법 태그를 제거하고 싶습니다.

아티스트 : www.xyz.com         ----> 아티스트 :
아티스트 : 무료 다운로드, 무료 음악, xyzhi.com     ----> 아티스트 :
아티스트 : Kurukuru 칸 (엠마 NA) - www.musicxyx.com - ® Danaa 컬렉션 ®         ----> 아티스트 : Kurukuru 칸 (엠마 NA)
아티스트 : 앤 Pogiren - - 다나 컬렉션 ® ®       ----> 아티스트 : 할머니 Pogiren이

내가 ID3 태그에 액세스 할 수 돌연 변이를 사용하고있다. 위의 내용을 달성하기 위해 태그에서 문자열을 조작하는 방법은 무엇입니까? 당신은 문자열 교체 작업을 할 필요가 단지 것, 그 너머 http://id3-py.sourceforge.net/

을 :

+3

어떻게 당신은 무료로 downloads'가 아닌'동안'Kurukuru Kan' 법적 이름이 있음을 알 수 있습니다 : 당신은 (이상한 공간 요구 사항 포함) 지정된 것들에 대한

? –

+0

문자열로는 차이가 없으며 단지 실용적으로되고 싶었습니다. 쓸데없는 태그 값을 제거하려고합니다. –

+0

매핑을 명시 적으로 제공 할 수 있습니까? –

답변

0

먼저 당신은 MP3 형식을 이해하고 어쩌면, 태그를 편집 할 수 있도록 라이브러리가 필요합니다.

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
EXPECTED = { 
'Artist:www.xyz.com':'Artist:', 
'Artist:free downloads,free music,xyzhi.com':'Artist:', 
'Artist:Kurukuru Kan (Amma Na) - www.musicxyx.com - ® Danaa collections ®':'Artist: Kurukuru Kan (Amma Na)', 
'Artist: Nan Pogiren - - ® Danna collections ®':'Artist:Nan Pogiren'} 

import re 

def process(instr): 
    assert instr.startswith("Artist:") 
    mo = re.match(r"^(Artist:)(?)(.*?) - .*$",instr) 
    if mo: 
     spc = mo.group(2) 
     if spc == " ": 
      spc = "" 
     else: 
      spc = " " 

     return "Artist:"+spc+mo.group(3) 
    return "Artist:" 

for (instr,outstr) in EXPECTED.iteritems(): 
    print process(instr),outstr,process(instr) == outstr 
    assert process(instr) == outstr 
+0

나는 Mutagen ID3 Python 라이브러리를 사용하고 있으며 아티스트 나 앨범과 같은 것이없는 문자열을 얻을 수 있습니다. 위 스크립트에서 변경된 사항을 통해 원래 문자열과 예상 문자열에 'Artist :'가 없으면 위의 정확한 작업을 수행 할 수 있습니다. –

+0

@Arun - 왜 아티스트를 포함 시켰습니까? 예를 들어 보겠습니다. –

관련 문제