3
我以前問過一個question關於如何設置一個tkinter gui來接收來自子進程的行,而不會掛起整個程序。這現在是功能。如何發送一個新的命令到一個子進程
現在,我不知道如何發送新行到子進程。我試過使用process.communicate,但我可能一直在錯誤地使用它。我也試過this question's solution,但self.process.stdin.write('stop\n'.encode())
似乎不起作用。我如何發送新的命令到子python子進程?
相關的代碼:
self.process = subprocess.Popen([ "python", "-u", dir + "start.py" ],
stdout=subprocess.PIPE,
stdin=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd=dir)
這應該工作....假設'start.py'正在讀取標準輸入。 start.py是否會產生大量輸出(可能會掛在輸出管道上),還是它正在爲控制終端執行「到達」stdin(例如,提示輸入密碼)的內容。這是Linux還是Windows? – tdelaney 2014-12-06 19:07:47
您可以添加'self.process.stdin.flush()',但我認爲它的行緩衝。值得一槍,但。 – tdelaney 2014-12-06 19:08:46
工作正常!非常感謝!你想寫這個答案作爲這個問題的答案,還是我應該? – 2014-12-06 19:44:51