【发布时间】:2017-07-13 00:36:11
【问题描述】:
将命令作为列表传递时,subprocess.Popen 将自动引用有空格的参数。但是,如果我使用具有如下空格的系统属性运行 java:
-Dwebdriver.firefox.bin="C:\Program Files (x86)\Mozilla Developer Preview\firefox.exe"
,会报错: 'C:\Program' 无法识别错误 ,我认为这是因为 Popen 会在看到空格时在整个参数周围插入引号,并转义其余的双引号。如果我想继续使用 Popen 命令,我不确定如何解决这个问题:
subprocess.Popen([
'cmd.exe', '/C', 'C:\\Program Files\\java\\jre7\\bin\\java.exe',
'-Dwebdriver.firefox.bin="C:\\Program Files (x86)\\Mozilla Developer Preview\\firefox.exe"',
'-jar', 'C:\\Users\\testing\\Temp\\SeleniumServer.jar'])
【问题讨论】:
-
你想做什么详细说明......
-
为什么是
cmd.exe?添加 shell 解释层会引入原本不会有的复杂性。 -
我认为需要 cmd.exe 因为我没有使用 shell=True。
标签: python subprocess