2017-04-23 11 views
1

누구든지이 코드를 수정하는 방법을 설명 할 수 있습니까? song을 전체 파일 경로와 동일하게 설정하면 스크립트가 아무 문제없이 실행됩니다. 그러나 문제는 그 경로에서 .mp3 파일의 이름을 항상 알지 못하기 때문에 파일을 와일드 카드로 가리켜 야합니다.와일드 카드 파일 이름과 Pydub

from pydub import AudioSegment 
import glob 

my_song = glob.glob('/Users/usename/Google Drive/Developer/Voicemails/?.mp3') 

song = AudioSegment.from_mp3(my_song) 

song.export("/Users/username/Google Drive/Developer/Voicemails/voicemail1.flac", format="flac") 

모든 포인터가 굉장합니다! 파일의

답변

2

같은 뭔가 '?' glob에 '*'를 사용하면 glob를 사용할 때 파일 목록을 반환하므로 모든 파일을 반복 재생할 수 있습니다. (해당 디렉토리에 하나의 파일 만 있더라도). 이 같은

예를 들어 뭔가 :

from pydub import AudioSegment 
import glob,os 


songs = glob.glob('/Users/usename/Google Drive/Developer/Voicemails/*.mp3') 
for my_song in songs: 
    song = AudioSegment.from_mp3(my_song) 
    song.export(os.path.join ("/Users/username/Google Drive/Developer/Voicemails", os.path.basename(my_song) + ".flac"), format="flac") 

행운

+0

완벽했다, 감사합니다! – BrettJ

1

glob.glob 반환 목록

시도 모든 MP3 파일을 바로 대체 얻으려면

from pydub import AudioSegment 
import glob 

my_songs = glob.glob("/Users/usename/Google Drive/Developer/Voicemails/*.mp3") 
for my_song in my_songs: 
    song = AudioSegment.from_mp3(my_song) 
    ...