duque
函数有一个 maxlen 参数,当 append
的时候,如果超过,那么最前面的就会被挤出队列
from collections import duque
def search(lines, pattern, lens=5):
previous_lines = deque(maxlen=lens)
for li in lines:
if pattern in li:
yield li, previous_lines
previous_lines.append(li)
if __name__ == '__main__':
with open(r'./xx.txt') as f:
for line, prevlines in search(f, 'python', 5):
for pline in prevlines:
print(pline, end='')
print(line, end='')
print('**' * 20)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于