我想并行运行几个python脚本,从主python脚本调用。随着这些子脚本的完成,我想从主脚本的子脚本中检索多个值
在下面的示例中,我启动main.py,然后调用sub.py 10次。然后我想等到sub.py的所有10个实例都完成之后,从每个实例中检索列表。这确实适用于单个数值,但我想检索一个字符串列表,甚至一个大字符串
所以,有两个问题
我是否正确地进行了并行处理?仅仅因为它起作用并不意味着它是“正确的”
是否可以将一个列表或大字符串从sub.py传递回main.py,或者我是否只能使用单个数值作为退出代码
主.py
#
# main.py - main program module
#
import subprocess
import time
procs=[]
# Open 10 python processes
for i in range(10):
procs.append(subprocess.Popen(["python","./sub.py"]))
# Loop until no "None" returned
while True:
for proc in procs:
if proc.poll() == None:
break
else:
break
for proc in procs:
print("{} values".format(proc.poll()))
sub.py公司
#
# sub.py - Called by main.py
#
# Generate a random list of numbers, then sleep a couple seconds
#
import time
import random
import sys
out = [] # List containing our random values
amt = random.randint(1,10) # How many values to return
slp = random.randint(1,4) # Number of seconds to sleep
# Generate random values in a list
for i in range(amt):
out.append(random.randint(1,10))
print("Sleeping {} seconds.".format(slp))
time.sleep(slp)
sys.exit(out)
目前没有回答
相关问题 更多 >
编程相关推荐