subprocess.Popen无法打开exe

时间:2020-04-15 15:45:36

标签: python command-line

这有效:

FNULL = open(os.devnull, 'w')
sgargs = "C:\\Program Files (x86)\\Stone Giant\\exe\\stone_giant.exe -bundle-dir \"C:\\Program Files (x86)\\Stone Giant\\bundle\""
subprocess.call(sgargs, stdout=FNULL, stderr=FNULL, shell=False)

这不起作用,并且没有给出任何错误或信息:

subprocess.Popen(["C:\\Program Files (x86)\\Stone Giant\\exe\\stone_giant.exe", "-bundle-dir \"C:\\Program Files (x86)\\Stone Giant\\bundle\""])

我想使用Popen使其不受阻碍。我想念什么?

1 个答案:

答案 0 :(得分:1)

在第二个示例中,您将-bundle-dir \"C:\\Program Files (x86)\\Stone Giant\\bundle\设置为单个参数。在引擎盖下,python转义了参数名称和值之间的空格,并且程序认为您传递了一个原义为“ -bundle-dir \” C:\ Program Files(x86)\ Stone Giant \ bundle \”的参数。

分成多个参数

["C:\\Program Files (x86)\\Stone Giant\\exe\\stone_giant.exe", 
    "-bundle-dir", "C:\\Program Files (x86)\\Stone Giant\\bundle\"]