Python subprocess模块:如何将逗号分隔的输入传递给Popen?
我有一个字符串列表,还有一个我想用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
类型,这可能会在后面造成一些意想不到的问题。