Python脚本中的命令行

时间:2015-05-10 07:49:54

标签: python

我正在使用subprocess来调用命令行。例如,

subprocess.check_output(["echo", "Hello World!"])

这是一个论点。我想调用一个名为“myFuntion”的可执行文件,并按名称将几个参数传递给它。我写的命令行是:

./myFunction --arg1 a1 --arg2 a2 

我如何“翻译”这个?

1 个答案:

答案 0 :(得分:4)

简单:每个参数都是列表中的一个单独元素。

因此,如果您了解shell将如何分离出此命令行:

./myFunction --arg1 a1 --arg2 a2

......你知道论点是什么。当没有引号或转义或其他任何花哨的东西时,shell只会在空格上分开。所以这只是5个论点:

subprocess.check_output(["./myFunction", "--arg1", "a1", "--arg2", "a2"])

如果你有一个你不确定如何翻译的命令行,你可以让你的shell为你做这个......或者只是在Python中使用shlex模块:

>>> print(shlex.split('./myFunction --arg1 a1 --arg2 a2'))
['./myFunction', '--arg1', 'a1', '--arg2', 'a2']