如何只存储子流程返回的最后一行?等待子流程的最后一行
特别是,我从python调用了一个子进程,它返回了很多输出行。子处理在一些不可预知的(可能很长的)时间后终止,我只需要处理来自STDOUT的最后一行。
我可以以某种方式避免整个输出的存储,只是等待最后一个?
如何只存储子流程返回的最后一行?等待子流程的最后一行
特别是,我从python调用了一个子进程,它返回了很多输出行。子处理在一些不可预知的(可能很长的)时间后终止,我只需要处理来自STDOUT的最后一行。
我可以以某种方式避免整个输出的存储,只是等待最后一个?
在阅读最后一行之前,您必须处理(并放弃)每一行。
所以你可以做这样的事情
line = None
for line in proc.stdout:
pass
# now line is either the last line or None.
if line is not None:
process(line)
可你只需要使用'proc.stdout.readline()'在一个循环? – wim 2013-04-08 12:40:14