我尝试在python脚本中调用外部perl脚本。我用了subprocess.Popen()
。如果像
subprocess.Popen([mybinary, '-arg1 argv1', '-arg2 argv2'])
参数不会发送到mybinary
。但是如果我从值中分离出参数,那么它就可以正常运行:
subprocess.Popen([mybinary, '-arg1', 'argv1', '-arg2', 'argv2'])
为什么会这样? args需要是一个字符串或列表。如果我将mybinary
和参数连接到Popen()
的单个字符串中,Popen()
也不起作用。我怀疑这与关键词的论点(** kwargs)有关。但是调用的脚本是外部的。我没有看到原因。
答案 0 :(得分:0)
我尝试在python脚本中调用外部perl脚本。我用了 subprocess.Popen()。如果像
那样运行subprocess.Popen([mybinary, '-arg1 argv1', '-arg2 argv2'])
参数不会发送到mybinary。
我对此表示怀疑。我宁愿认为他们以不恰当的方式来到那里。
脚本期望选项及其值作为两个单独的参数。如果它们合并,则不起作用。
参数的形状和计数完全按照您在列表中给出的方式进行传递。