上下文:系统上有一个地图,上面有我要调用的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。
我搜索了这两种方法,但在我面前没有人遇到这样的问题(或者我没有看到它:对不起,如果是这样的话)。
答案 0 :(得分:1)
列表中的每个项目都应该是一个参数。将"-input somefile"
替换为"-input", "somefile"
:
from subprocess import call
rc = call(["nameOfBin", "-input", "somefile"])