因此,我遇到了这种棘手的情况,我需要执行少量的子进程,并能够得到每个子进程的输出。这就是我用的自动取款机:
output = Popen(cmd, stdout=PIPE, stderr=STDOUT)
output = output.communicate()[0]如果有错误的话,也会给我带来错误。现在,我需要执行其中的10个,并能够得到每个输出。我在想,在不使用多线程的情况下,是否有一种顺利的方法可以做到这一点。
发布于 2015-12-09 14:09:43
subprocess.Popen异步启动子进程,只有communicate使操作同步。
所以你只需要首先启动你所有的子进程。然后,根据您希望如何处理它们的输出,您可以:
communicate或waitselect模块。subprocess.poll循环,知道哪些已经完成。https://stackoverflow.com/questions/34180153
复制相似问题