我正在尝试创建一个python脚本,该脚本调用其他5个python脚本,在传入数组时同时运行,然后5个脚本中的每个脚本都对该数组执行操作,并将不同的数组返回给初始脚本。
然后,初始脚本会识别5何时返回值,然后对这5个阵列执行操作。
我认为解决方案就像
os.system(./script1.py arg1)
,os.system(./script2.py arg2)
但我不确定如何继续。
答案 0 :(得分:0)
您可以使用线程池并行运行所有命令。我还转到了获取程序输出的subprocess
模块:
import multiprocessing.pool
import subprocess as subp
def worker(script):
proc = subp.Popen(script, shell=True, stdout=subp.PIPE, stderr=subp.PIPE)
out, err = proc.communicate()
return script, out, err, proc.returncode
scripts = ['./script1.py arg1', './script2.py arg2']
pool = multiprocessing.pool.ThreadPool(len(scripts))
for script, out, err, returncode in pool.map(worker, scripts):
do your magic
pool.close()
pool.join()