1

可能重复:
如何从 python 执行程序?os.system 由于路径中的空格而失败

我试图从 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。谢谢你的帮助。

4

2 回答 2

3

command应该是一个字符串列表,以mp3gain为第一个,即:

command = ['mp3gain', '/r', '/c', self.FileName]
于 2012-11-21T21:33:59.330 回答
0

您可以使用 调用程序os.system。例如,在您的程序中,您可以使用:

os.system("mp3gain /r /c " + self.FileName)
于 2012-11-21T21:43:00.577 回答