Python 子进程 PIPE 阻塞
Python subprocess PIPE blocking
子进程将输出几个字符,我想通过标准输入发送一些响应。输出的长度是可以预测的,所以我写了这样的代码:
p = Popen("myproc", shell = True, stdin = PIPE, stdout = PIPE)
p.stdout.read(1)
然而,p.stdout.read(1)
不会 return 即使进程已经输出了超过一个字符。如何让它在读取到预期长度的字节序列后停止阻塞?
myproc
可以在重定向标准输出时使用块缓冲模式,即您的父级 Python 在刷新子级中的相应缓冲区之前不会看到任何内容。参见 。
子进程将输出几个字符,我想通过标准输入发送一些响应。输出的长度是可以预测的,所以我写了这样的代码:
p = Popen("myproc", shell = True, stdin = PIPE, stdout = PIPE)
p.stdout.read(1)
然而,p.stdout.read(1)
不会 return 即使进程已经输出了超过一个字符。如何让它在读取到预期长度的字节序列后停止阻塞?
myproc
可以在重定向标准输出时使用块缓冲模式,即您的父级 Python 在刷新子级中的相应缓冲区之前不会看到任何内容。参见