运行 subprocess.popen 有 N 个参数

Run subprocess.popen with N arguments

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 个参数呢?这是不好的方法,对吧? 帮我用更小的行写这段代码。

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

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

这会起作用