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

use*_*963 2 python-3.x

我正在尝试通过子进程运行 cmd 并向其传递参数列表,其中一个参数是包含其他参数的列表。如何将其传递给子流程?

例子:

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

这可能吗?

tre*_*tcl 6

要么用于*解压列表:

subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag", *my_list])
Run Code Online (Sandbox Code Playgroud)

或者将两个列表连接在一起+

subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag"] + my_list)
Run Code Online (Sandbox Code Playgroud)

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

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