我使用的是Python 3.5,我的代码如下:
鉴于a_sentence,程序在while循环期间挂起,因为line_read是""因此它永远不会增加nl_c,因此永远不会退出循环,我使用子流程相对较新,所以我不确定问题在哪里,是否没有正确读取或输出。 tl; dr子进程的输出是""什么时候它应该是一个任意的字符串。
有人能指出我正确的方向让line_read = proc.stdout.readline()
成为上面输入的行吗?
答案 0 :(得分:0)
readline
返回单行文本,包括尾随新行,直到另一端关闭流。一旦读取了所有数据,它就会开始返回空字符串,让调用者知道流已关闭,并且永远不会有新数据。通常,while循环应该在返回空字符串时中断。
您还应该在最后调用proc.wait()
,以便清除有关死进程的系统信息。