使用N个参数运行subprocess.popen

时间:2017-02-08 04:36:48

标签: python subprocess dynamic-programming popen

subprocess.popen在后台调用进程。

我正在调用php进程,有时候是python进程,每次参数可能都不同。我想编写一个函数,然后我会传递参数列表。该函数将根据参数执行进程。

所以我正在做的是,写在下面,实际上这是不好的方式,我不想写这么多行。

    def RunBackGroundProcess(args):
        # args is an array of params
        # index 0 - command - php/python or anyother
        # index 1 - filename - that you want to run. Specify fullpath if required
        # index 2 - param_1
        # index 3 - param_2
        # index N - param_N

        if(len(args) == 2):
            subprocess.Popen([args[0], args[1], args[2]])

        if(len(args) == 3):
            subprocess.Popen([args[0], args[1], args[2], args[3]])

        if(len(args) == 4):
            subprocess.Popen([args[0], args[1], args[2], args[3], args[4]])

如果我有10个参数或15个参数怎么办?这是不好的方式,对吗? 帮我用更小的行编写这段代码。

1 个答案:

答案 0 :(得分:1)

你将args作为列表传递,所以虽然subprocess.Popen()不需要检查参数长度,你可以直接传递给子进程

def RunBackGroundProcess(args):
    subprocess.Popen(args)

这将有效