如何将新命令发送到子进程

时间:2014-12-06 16:53:52

标签: python python-3.x subprocess

我之前曾问过一个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)

1 个答案:

答案 0 :(得分:3)

数据可能会卡在管道中。写完后添加self.process.stdin.flush()