2017-04-23 52 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

要獲得所有MP3文件只需更換 '?' '*'在路徑 現在當你使用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回報文件列表

試着這麼做

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) 
    ...