运行 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)
这会起作用
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)
这会起作用