可能重复:
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()
如果这有帮助,如果我打印出退出代码,则为-2。谢谢你的帮助。
答案 0 :(得分:3)
command
应该是一个字符串列表,其中mp3gain是第一个,即:
command = ['mp3gain', '/r', '/c', self.FileName]
答案 1 :(得分:0)
您可以使用os.system
来调用程序。
例如,在您的程序中,您可以使用:
os.system("mp3gain /r /c " + self.FileName)