Найти - Пользователи
Полная версия: как создать и запустить список процессов ?
Начало » Python для новичков » как создать и запустить список процессов ?
1
MarkHammer
Здравствуйте ! Подскажите пожалуйста как правильнее создать и запустить список процессов с параметрами ? Т.е. необходимо привести к краткому виду вот это :

p1=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’0,51,LOG1_PING_COMP.txt')
p2=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’50,101,LOG2_PING_COMP.txt')
p3=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’100,151,LOG3_PING_COMP.txt')
p4=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’150,201,LOG4_PING_COMP.txt')
p5=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’200,251,LOG5_PING_COMP.txt')
p6=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’250,301,LOG6_PING_COMP.txt')
p7=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’300,351,LOG7_PING_COMP.txt')
p8=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’350,401,LOG8_PING_COMP.txt')
p9=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’400,451,LOG9_PING_COMP.txt')
p10=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’450,501,LOG10_PING_COMP.txt')
p11=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’500,551,LOG11_PING_COMP.txt')
p12=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’550,601,LOG12_PING_COMP.txt')
p13=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’600,651,LOG13_PING_COMP.txt')
p14=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’650,701,LOG14_PING_COMP.txt')
p15=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’700,751,LOG15_PING_COMP.txt')
p16=subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py ‘ + r’750,801,LOG16_PING_COMP.txt')


p1.wait()
p2.wait()
p3.wait()
p4.wait()
p5.wait()
p6.wait()
p7.wait()
p8.wait()
p9.wait()
p10.wait()
p11.wait()
p12.wait()
p13.wait()
p14.wait()
p15.wait()
p16.wait()



Возможно ли вообще сократить такую запись ?
4kpt
Циклы…
MarkHammer
по поводу циклов я знаю - как только потом организовать ожидание завершения процессов ? ведь в цикле они все будут одноименными или же для запуска следующего процесса прийдется ожидать завершения предыдущего… а мне необходимо сначала запустить все процессы, а потом дожидаться их выполнения…
я так предполагаю что необходимо каким-то образом использовать словари ?
4kpt
Хватит и списков.
Ладно.

target = [r'0,51,LOG1_PING_COMP.txt',
          r'50,101,LOG2_PING_COMP.txt',
          r'100,151,LOG3_PING_COMP.txt']
spr = []
for trg in target:
    vrs = subprocess.Popen('python C:\Python33\projects\PING_COMP\PING_COMP.py' + trg)
    spr.append(vrs)
for vrs in spr:
    vrs.wait()
MarkHammer
4kpt
Хватит и списков.Ладно.

Спасибо ! Что-то подобное думал сделать, но сам не дошел…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB