Python:调用一个调用bin的shell脚本。有了参数

时间:2014-02-21 16:18:10

标签: shell python-3.x arguments

上下文:系统上有一个地图,上面有我要调用的bin文件。它们不能直接调用,但通过shell脚本执行各种魔法,然后调用相应的bin:"$ENV_VAR/path/to/the/bin" "$@"(该软件是非自由的,这可能就是使用这种结构的原因)

问题:在Python中调用此方法。我试着用:

from subprocess import call call(["nameOfBin", "-input somefile"])

但这给出了错误ERROR: nameOfBin - Illegal option: input somefile。这意味着“输入”前面的“ - ”符号在此过程中已经消失(在前面添加更多“ - ”符号并没有帮助。)

可能的解决方案

1:在某种程度上保留' - '符号,以便最后的bin实际上将'-input'作为选项而不是'input'。

2:以肮脏的方式修复魔法(我可能会管理),并且有办法在$ ENV_VAR(环境变量)定义的位置调用bin。

我搜索了这两种方法,但在我面前没有人遇到这样的问题(或者我没有看到它:对不起,如果是这样的话)。

1 个答案:

答案 0 :(得分:1)

列表中的每个项目都应该是一个参数。将"-input somefile"替换为"-input", "somefile"

from subprocess import call

rc = call(["nameOfBin", "-input", "somefile"])