讀取日誌文件,搜索關鍵字,打印關鍵字前5行。yield、deque實例

from collections import dequedef 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)if __name__ == '__main__':    with open('log.txt','r',encoding='utf-8') as f:        for line, prevlines in search(f, 'return', 1):            for pline in prevlines:                print(pline,end='')            print(line,end='')            print ('-'*20)
相關文章
相關標籤/搜索