【发布时间】:2012-11-10 05:48:45
【问题描述】:
可能重复:
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。感谢您的帮助。
【问题讨论】:
-
python puts a [' '] around the command是什么意思?您不应该让真正的蛇为您输入代码,它只是语言名称。 -
如果你的命令行应该是
mp3gain /r /c filename.mp3- 你试过command = ['mp3gain', '/r', '/c', self.FileName]吗? (mp3gain 也必须可以从解释器的工作目录中调用 - 否则,您可能需要调用完整可执行文件的路径)
标签: python