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,以便我可以依賴於每個線程完全獨立?
在此先感謝