这有效:
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使其不受阻碍。我想念什么?
答案 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\"]