任何人都可以向我解释如何修复此代码。如果我将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")
任何指针都很棒!
答案 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)
...