【发布时间】:2014-03-19 02:36:59
【问题描述】:
我一直在玩subprocess.Popen 来执行一个程序,但一直没有想出正确的方法来传递参数。
这是一个应该执行我的程序的简化代码sn-p:
subprocess.Popen(shlex.split('dflat --portfolio jumpy --seed 1 --tables -n semi --elimination min-degree -e edge --default-join -p ../test_encodings/exchange.lp'))
shlex.split(...)的输出:
['dflat', '--portfolio', 'jumpy', '--seed', '1', '--tables', '-n', 'semi', '--elimination', 'min-degree', '-e', 'edge', '--default-join', '-p', '../test_encodings/exchange.lp']
但是,被调用的程序未能告诉我我需要提供一个程序(-p 选项),正如您在上面看到的那样。
虽然从 shell 运行命令效果很好。
【问题讨论】:
-
这是一个 SSCCE 非常宝贵的地方。见sscce.org
-
根据 cmets 的说法,这个问题是不可重现的。投票结束。
标签: python subprocess command-line-arguments