python subprocess.Popen()参数中的空格

时间:2014-02-04 16:47:39

标签: python subprocess

我尝试在python脚本中调用外部perl脚本。我用了subprocess.Popen()。如果像

那样运行

subprocess.Popen([mybinary, '-arg1 argv1', '-arg2 argv2'])

参数不会发送到mybinary。但是如果我从值中分离出参数,那么它就可以正常运行:

subprocess.Popen([mybinary, '-arg1', 'argv1', '-arg2', 'argv2'])

为什么会这样? args需要是一个字符串或列表。如果我将mybinary和参数连接到Popen()的单个字符串中,Popen()也不起作用。我怀疑这与关键词的论点(** kwargs)有关。但是调用的脚本是外部的。我没有看到原因。

1 个答案:

答案 0 :(得分:0)

  

我尝试在python脚本中调用外部perl脚本。我用了   subprocess.Popen()。如果像

那样运行
subprocess.Popen([mybinary, '-arg1 argv1', '-arg2 argv2'])
     

参数不会发送到mybinary。

我对此表示怀疑。我宁愿认为他们以不恰当的方式来到那里。

脚本期望选项及其值作为两个单独的参数。如果它们合并,则不起作用。

参数的形状和计数完全按照您在列表中给出的方式进行传递。