Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通配符文件名和Pydub_Python_Glob_Pydub - Fatal编程技术网

Python 通配符文件名和Pydub

Python 通配符文件名和Pydub,python,glob,pydub,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设置为完整文件路径,则脚本运行时不会出现任何问题。然而,问题是我并不总是知道该路径中.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")
任何指针都会很棒

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

要获取所有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")
祝你好运