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

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

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

我试过的东西,

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 中应该是 (' ', ' ' ,' ') 等等......

有一个更好的方法吗 ?

4

1 回答 1

3

您可以通过将列表添加在一起来制作新列表:

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

这将test.py使用argument_list它的命令行参数运行。

于 2013-09-21T23:58:49.697 回答