2013-03-26 75 views
0

我有一串字符串和一个命令,我想和Popen一起运行。该命令将字符串作为输入参数。Python子流程模块:如何将逗号分隔的输入传递给Popen?

我怎样才能轻松地添加整个列表...

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

...如逗号分隔如下所示输入:

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

我不能这样做,因为它不会将列表隐式转换为str:

Popen(['cmd',list]) 

也不是这样,因为它不会允许字符串中的空格:

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

是否有替代方案?

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

+2

'['cmd'] + list'在这里工作完美吗? – Wessie 2013-03-26 01:43:16

+0

工作。不知道你能做到这一点。谢谢。 – imagineerThat 2013-03-26 01:44:44

回答

1

您可以执行以下操作,从两个(或多个)单独的列表中创建一个新的列表。

['cmd'] + list 

这会为您创建一个新的列表,其中包含两者的内容。正如你所提到的那样,语法看起来和完全如你所期望的那样,它将两个列表一起添加。

注意:我也想警告你不应该使用list作为变量名。因为这意味着你隐藏了内置的list类型。这可能会在稍后导致无法预料的问题。