collections.deque 列队实现保留N个记录

collections.deque 列队实现保留N个记录

file:
    1  sh startup.sh
    2  exit
    3  cd /data/tomcat6/bin/
    4  ps -ef |grep tomcat
    5  top
    6  ps -ef |grep tomcat
    7  kill -9 12621
    8  ps -ef |grep tomcat
    9  sh startup.sh
   10  exit
   11  cd /data/tomcat6/bin/
   12  ps -ef |grep tomcat
   13  kill -9 24844
   14  ps -ef |grep tomcat
   15  sh startup.sh
   16  exit
   17  ps -ef |grep tomcat
   18  cd /data/tomcat6/bin/
   19  kill -9 23973
   20  ps -ef |grep tomcat

例:

from collections import deque
def search(line,pattern,history=5):
    previous_lines = deque(maxlen=history)
    for li in line:
        if pattern in li:
            yield li,previous_lines
        previous_lines.append(li)

if __name__ == '__main__':
    "在 file 文件中,查找 'sh startup.sh' 字符串, 并且显示查找到'sh startup.sh' 字符串之前的5个记录"
    with open('file') as f:
        for line,previlnes in search(f,'sh startup.sh',5):
            for piline in previlnes:
                print(piline)
            print(line)
            print('_' * 20)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 在经过一次没有准备的面试后,发现自己虽然写了两年的android代码,基础知识却忘的差不多了。这是程序员的大忌,没...
    猿来如痴阅读 8,054评论 3 10
  • 一曲一天歌,一唱天下和…… 黑山,天下匪城。 粗犷的建筑装满了整个山坳,石楼碉堡参杂着高大的金属瞭望塔,文明与野蛮...
    风十二郎阅读 4,174评论 14 10
  • 最近理书,发现大学四年加上工作三年,也攒了不下200本图书。这些书有的是网上打折买下的,有些是微博推荐好书买下的。...
    谢唠钱呗阅读 1,715评论 0 0
  • 爆竹声中一岁除,春风送暖入屠苏。辞别猴哥驾云去,旧历翻过迎新年!铺天盖地祝福语,绵绵不绝情意浓! 【祝大家新年快乐...
    玫瑰花的梦阅读 1,562评论 0 1

友情链接更多精彩内容