2013-10-03 6 views
7

मैं एक साथ चलाने के लिए task.py के 86 उदाहरण बनाने की कोशिश कर रहा हूं। आदेश के लिएएक साथ पाइथन लिपि के कई उदाहरण चलाएं

import sys 
import subprocess 

for file in range(86): 
    subprocess.call([sys.executable,'task.py',str(file)+'in.csv',str(filen)+'out.csv']) 
+6

समस्या क्या है? – Alex

+2

@Alex समस्या थी "subprocess.call कमांड को पूरा करने के लिए इंतजार कर रहा है। Subprocess.Popen का उपयोग करें:" – user14372

उत्तर

11

subprocess.call प्रतीक्षा करता है पूरा करने के लिए। इसके बजाय subprocess.Popen का उपयोग करें:

import sys 
import subprocess 

procs = [] 
for i in range(86): 
    proc = subprocess.Popen([sys.executable, 'task.py', '{}in.csv'.format(i), '{}out.csv'.format(i)]) 
    procs.append(proc) 

for proc in procs: 
    proc.wait() 
+0

कमाल धन्यवाद;) – user14372

+0

क्या यह समाधान एक "बहुप्रचारित" समाधान है? या वास्तव में यह पाइथन के कई उदाहरण लॉन्च करता है? – Lisa

+0

@ लिसा, मॉड्यूल के नाम के सुझाव के रूप में, यह कई उदाहरणों (उप "प्रक्रिया") लॉन्च करता है। (ओपी का मूल कोड भी कई उदाहरण लॉन्च करता है) – falsetru

संबंधित मुद्दे