2017-04-16 55 views
-3

我试图运行此代码,但它导致以下错误:错误:AudioFileOpen失败('wht?')。因此,这里是我的代码,它是在Mac上并与MP3文件的文件夹运行,如果这是任何帮助:Python-错误:AudioFileOpen失败('wht?')'是什么意思?

import os 
def randomShuffleSongFromFolder(folderPath): 
    try: 
     music = os.listdir(folderPath) 
    except: 
     print('Error-Music folder not found') 
     exit() 
    random.shuffle(music) 
    music.remove('.DS_Store') 
    print(folderPath) 
    print(music) 
    for song in music: 
     os.system('afplay "' + song + '"') 
if __name__ == '__main__': 
    print(os.listdir('/Users/isaac_lims_macbook_air/Desktop/davidMusic')) 
randomShuffleSongFromFolder('/Users/isaac_lims_macbook_air/Desktop/MusicExample/') 

任何帮助,欢迎和极大的感谢

+0

它可能来自'playMusic()',但我们无法知道该函数的功能。这绝对不是来自标准库。 – Chris

回答

0

看一看这(从你的问题):

for song in music: 
    os.system('afplay "' + song + '"') 

并记住music包含:(文件名列表如"Adele - Hello.mp3")。当你把它们传递给afplay你不告诉它在寻找哪个目录(请注意,该错误信息不会从Python中来,而是从自身afplay;如见this other question where the same command is called from C。)

尝试使用os.path.join()包括该目录,例如

import os.path 

# Assuming folderPath is being passed into the containing function as above 
for song in music: 
    songPath = os.path.join(folderPath, song) 
    os.system('afplay "{}"'.format(songPath)) 

这样afplay会收到类似"/Users/you/Desktop/Music/Adele - Hello.mp3"的绝对路径。