subprocess.popen вызывает процесс в фоновом режиме.Запустить subprocess.popen с N аргументами
Я вызываю процесс 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 (список (арг)) '? – mgilson
@mgilson обертывает его 'list' необходимым? Я предполагаю, что это уже список (хотя он говорит, что массив кажется маловероятным) – sberry
@sberry - это зависит от входов и от того, насколько параноидны/гибки вы хотите, чтобы интерфейс был ... Если входы всегда необходимы, чтобы быть 'sequence', то нет, вам абсолютно не нужно обертывать его в' list'. С учетом сказанного это не очень больно, если вы пытаетесь написать что-то каркасное, и поэтому вы хотите также принять произвольные итерации (я предполагаю, что вы не передаете генераторы, которые дают достаточно элементов, чтобы быть проблематичным для 'subprocess'). .. – mgilson