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

时间:2013-03-26 01:40:58

标签: python subprocess popen

我有一个字符串列表和一个我想与Popen一起运行的命令。该命令将字符串作为输入参数。

如何轻松添加整个列表...

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

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

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

我将无法执行此操作,因为它不会隐式地将列表转换为str:

Popen(['cmd',list])

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

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

还有其他选择吗?

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

1 个答案:

答案 0 :(得分:1)

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

['cmd'] + list

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

注意:我还想提醒您不要将list用作变量名称。因为这意味着您正在隐藏内置list类型。这可能会在以后引起无法预料的问题。