将列表传递给subprocess.check_output

时间:2013-09-21 23:56:52

标签: python subprocess

argument_list = ['name=Jon', 'id=100' ]

output = subprocess.check_output(
         ['/usr/bin/python', 'test.py', argument_list ], stderr=subprocess.STDOUT)

简单来说,我试图使用名为test.py的子进程调用脚本;我想通过列表将参数传递给test.py. Importatnt - 列表可以是任何大小。

我尝试的事情,

output = subprocess.check_output(
         ['/usr/bin/python', 'test.py', ", ".join(argument_list) ], stderr=subprocess.STDOUT)

output = subprocess.check_output(
         ['/usr/bin/python', 'test.py', '%s' % argument_list ], stderr=subprocess.STDOUT)

两者都不起作用,因为在subprocess.checkoutput中应该是('','','')等......

有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以通过将列表添加到一起来创建新列表:

output = subprocess.check_output(['/usr/bin/python', 'test.py'] + argument_list, stderr=subprocess.STDOUT)

这将使用test.py作为命令行参数运行argument_list

相关问题