我使用Python的子模块通过标准输入和stdout管道程序交互。 如果我呼吁标准输出子进程的ReadLine(),它挂起,因为它正在等待一个换行符。
我怎样才能做到在子实例的标准输出管道的所有字符读? 如果它的事项,我在Linux上运行。
我使用Python的子模块通过标准输入和stdout管道程序交互。 如果我呼吁标准输出子进程的ReadLine(),它挂起,因为它正在等待一个换行符。
我怎样才能做到在子实例的标准输出管道的所有字符读? 如果它的事项,我在Linux上运行。
其他人似乎也有同样的问题,你可以看到相关的讨论在这里 。
如果你是在Linux上运行,你可以使用select等待的过程标准输出输入。 另外,您使用的stdout改变进程的模式,以无阻塞
import fcntl, os
fcntl.fcntl(your_process.stdout, fcntl.F_SETFL, os.O_NONBLOCK)
使用后的read(),直到你遇到一个换行符(如果你想一次处理输出一行),你可以循环。
应使用循环读取()针对字符集数。