Python subprocess模块:如何将逗号分隔的输入传递给Popen?

0 投票
1 回答
1080 浏览
提问于 2025-04-17 20:17

我有一个字符串列表,还有一个我想用Popen运行的命令。这个命令需要把这些字符串当作输入参数。

我该怎么简单地把整个列表...

list=['asdf','qwer','zxcv',...]

...作为下面显示的以逗号分隔的输入呢:

Popen(['cmd','asdf','qwer','zxcv',...])

我不能这样做,因为它不会自动把列表转换成字符串:

Popen(['cmd',list])

也不能这样做,因为它根本不允许字符串中有空格:

Popen(['cmd',' '.join(list)])

有没有其他的方法呢?

我不想使用'shell=True'这个选项。

1 个回答

1

你可以通过以下方法从两个(或更多)独立的列表中创建一个新的列表。

['cmd'] + list

这样就会为你创建一个新列表,里面包含了两个列表的内容。正如你提到的,语法看起来和你预期的一样,确实是把两个列表加在一起。

注意:我还想提醒你,不要把list用作变量名。因为这样会覆盖掉内置的list类型,这可能会在后面造成一些意想不到的问题。

撰写回答