可能重複:
How do I execute a program from python? os.system fails due to spaces in path如何在命令行蟒蛇運行程序
我想調用在Python命令行程序(MP3gain.exe)。我的問題是,python在我發送到命令行的命令周圍放置了一個[''],dos似乎無法用該命令解釋命令。這是我的代碼。
import os
import subprocess
import Editor
class normalize():
def __init__(self, file):
self.FileName = file
def work(self):
command = [ 'mp3gain /r /c' + self.FileName]
subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
if __name__ == "__main__":
test = normalize("filename.mp3")
test.work()
如果這有幫助,如果我有dos打印退出代碼,它是-2。謝謝你的幫助。
你是什麼意思'python在命令周圍放置['']?你不應該有一個真正的蛇爲你輸入代碼,它只是語言名稱。 –
如果你的命令行應該是'mp3gain/r/c filename.mp3' - 你有沒有試過'command = ['mp3gain','/ r','/ c',self.FileName]'? (也可能需要從解釋器的工作目錄中調用mp3gain)否則,您可能需要調用完整可執行文件的路徑) –