如何只存儲子流程返回的最後一行?等待子流程的最後一行
特別是,我從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