0
我最近问了如何让python shell获得子进程输出。并得到了一个非常有用的回应 - ie.e.喂养POPEN一个标准输出= subprocess.PIPE多线程需要多个管道
然后使用p.stdout.readline()和将结果打印()
p = subprocess.Popen(args, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, cwd=StartPath, shell=False)
it = iter(p.stdout.readline, b'')
sRet = "## decode Error ##"
for line in it:
try:
sRet = line.rstrip().decode('utf-8')
except:
pass
print(sRet[:PYTHON_WINDOW_WIDTH])
viRet = p.wait()
不过,我担心当我发生了什么事同时从多个线程调用此POpen。
相同的subprocess.PIPE正在fead到每个POpen。直到每条readline从两个子进程获得结果。
除了越来越有点奇特效果,每次循环(对于行吧:)
似乎要等到这两个线程子进程都在继续
之前完成,这不是我想要的。
- 那么有没有一种方法可以让我的一个管道(每个线程一个)PIPE,以便我可以依赖于每个线程完全独立?
在此先感谢