我使用python27的子進程lib從另一個python文件(sample.py)運行一個大的python文件(execute.py)。Python子進程在命令行和GUI控制檯展現不同的行爲,同時流輸出
如果我在windows命令行中運行sample.py(它有子進程語句),它運行正常並且流式輸出很好。
但是在python GUI控制檯中,當我運行GUI python文件(具有相同的子流程語句)時,GUI窗口在某些時間輸出打印爲整體(而非流式處理)後未響應一段時間。
下面是摘錄:
cmdlist = ["python", "execute.py","name","xyz"]
proc = subprocess.Popen(cmdlist, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in iter(proc.stdout.readline, ""):
self.output.write(line)
self.output.write("\n Finished process\n")
打我的頭一個星期,但沒有找到任何解決辦法爲止。
在打印輸出之前,GUI可能會將整個輸出存儲在緩衝區中。 Python GUI控制檯究竟意味着什麼? – KartikKannapur
我的python圖形用戶界面附帶控制檯。我們可以看到任何運行的輸出。我是否需要在子流程中爲實時輸出設置'bufsize'? – Nithya
你使用的是什麼python GUI? – MisterMiyagi