我试图通过子进程运行cmd并传递一个参数列表,一个参数是包含其他参数的列表。我怎样才能将它传递给子进程?
示例:
my_list = ['arg1', 'arg2', 'arg3']
subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag", my_list ])
这可能吗?
答案 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中,尽管它只解决在函数调用中使用它的问题,而不是构建新列表。无论如何都可以。