Process.stdout.readline()没有正确输出

时间:2015-11-04 17:39:56

标签: python

我使用的是Python 3.5,我的代码如下:

鉴于a_sentence,程序在while循环期间挂起,因为line_read是""因此它永远不会增加nl_c,因此永远不会退出循环,我使用子流程相对较新,所以我不确定问题在哪里,是否没有正确读取或输出。 tl; dr子进程的输出是""什么时候它应该是一个任意的字符串。

有人能指出我正确的方向让line_read = proc.stdout.readline()成为上面输入的行吗?

1 个答案:

答案 0 :(得分:0)

readline返回单行文本,包括尾随新行,直到另一端关闭流。一旦读取了所有数据,它就会开始返回空字符串,让调用者知道流已关闭,并且永远不会有新数据。通常,while循环应该在返回空字符串时中断。

您还应该在最后调用proc.wait(),以便清除有关死进程的系统信息。