Python3_Cookbook_保存有限的历史记录_2018-09-08

#保存有限的历史记录,匹配当前行和最后检查过的N行文本

from collections import deque

def search(lines,pattern,history=5) :

    previous_lines = deque(maxlen = history)

    for line in lines :

        if pattern in line :

            yield line,previous_lines

        previous_lines.append(line)

        #print (previous_lines,"++++")

#Example use on a file

if __name__ == "__main__" :

    with open ("somefile.txt") as f :

        for line,prevlines in search(f,'python',5) :

            for pline in prevlines :

                print(pline,end="")

                #pass

            print (line,end="")

            print ("-"*20)

############

#补充说明:

q = deque(maxlen=3)

q.append(1)##类似于list,不过只保留最新出现的3个元素###在最后面插入元素####

q.appendleft(4)###在最前插入###

q.pop()####后面弹出一个

q.popleft()####前面弹出一个

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容