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)