2017-04-23 10 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を使用すると、そのディレクトリにファイルが1つしかない場合でも、すべてのファイルをループして自分のものを処理する必要があるので、ファイルのリストを返します。このような

例えば何か:

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