Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试从当前无限的 Popen.stdout 对象中获取最后 N 行。无限我的意思是无限/许多被写入标准输出的日志条目。我尝试了受时间限制的 Popen.stdout.readline() ,但这只会产生很多随机问题,尤其是输出很少。当前输出的某种快照会对我有所帮助,但我找不到类似的东西。我主要找到的所有解决方案都是针对终止的外部进程,但我的是一个服务器应用程序,在我阅读最后几行后应该能够写入标准输出。
问候,
法尔比特
在 Unix 上,当你启动你的进程时,你可以tail先将它输入:
tail
p=subprocess.Popen("your_process.sh | tail --lines=3", stdout=subprocess.PIPE, shell=True) r=p.communicate() print r[0]
的用法shell=True是这里的关键。
shell=True