Python子进程,如何传递列表?

时间:2017-05-04 14:51:21

标签: python-3.x

我试图通过子进程运行cmd并传递一个参数列表,一个参数是包含其他参数的列表。我怎样才能将它传递给子进程?

示例:

my_list = ['arg1', 'arg2', 'arg3']
subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag", my_list ])

这可能吗?

1 个答案:

答案 0 :(得分:3)

使用*解压缩列表:

subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag", *my_list])

或者将两个列表与+连接起来:

subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag"] + my_list)

+仅适用于列表(例如,不是生成器)。

*的“解包”行为记录在官方教程here中,尽管它只解决在函数调用中使用它的问题,而不是构建新列表。无论如何都可以。