python怎么读取文件中当前行的指定上下五行?

clipboard.png
写一个日志读取脚本,如果当前行有error就把他记录下来;但是现在改进要记录错误行的前后五行,大家有啥好的实现方法吗?谢谢了

阅读 5.2k
2 个回答

你设置一个列表,没读取一行就将数据放入列表中,当列表中的数据多于5条的时候,就去让列表删除第一条,始终保持着列表中有5条数据,这样当你拿到error的时候,那么列表中的5条数据就是满足要求的。前五条完成,后5条应该很简单吧

日志不大的话,读到列表里,用id来取行内容而不是用readline等。

日志文件肯定很大, 建一个定长(你的就是5或者10)的 collections.deque,每读取一行line时往队列里插一行。条件达到输出这个deque就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题