通配符文件名和Pydub

时间:2017-04-23 17:37:22

标签: python glob pydub

任何人都可以向我解释如何修复此代码。如果我将song设置为等于完整文件路径,则我的脚本运行没有任何问题。但问题是,我并不总是知道该路径中.mp3文件的名称,因此我需要将该文件指向通配符。

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 个答案:

答案 0 :(得分: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")
祝你好运

答案 1 :(得分: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)
    ...