subprocess.Popen系统属性arg中的空格

时间:2017-07-12 15:58:57

标签: python subprocess

当将命令作为列表传递时,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'])

1 个答案:

答案 0 :(得分:1)

将该参数作为一个没有引号的列表项提供

[..., '-Dwebdriver.firefox.bin=C:\\Program Files (x86)\\Mozilla Developer Preview\\firefox.exe', ...]

它应该可以正常工作

引号只需要告诉命令行将其作为一个参数,但列表已经为你做了,所以引号只是在路上

看一下这个答案:ffmpeg through python subprocess fails to find camera