0

我正在尝试从当前无限的 Popen.stdout 对象中获取最后 N 行。无限我的意思是无限/许多被写入标准输出的日志条目。我尝试了受时间限制的 Popen.stdout.readline() ,但这只会产生很多随机问题,尤其是输出很少。当前输出的某种快照会对我有所帮助,但我找不到类似的东西。我主要找到的所有解决方案都是针对终止的外部进程,但我的是一个服务器应用程序,在我阅读最后几行后应该能够写入标准输出。

问候,

法尔比特

4

1 回答 1

0

在 Unix 上,当你启动你的进程时,你可以tail先将它输入:

p=subprocess.Popen("your_process.sh | tail --lines=3", stdout=subprocess.PIPE, shell=True)
r=p.communicate()
print r[0]

的用法shell=True是这里的关键。

于 2013-02-18T05:22:14.710 回答