python deque 双队列

  • 2019 年 10 月 7 日
  • 筆記

搜索文件中的字符串,并保留字符串的前面5行:collections.deque

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)

Example use on a file

if name == 'main': with open(r'../../cookbook/somefile.txt') as f: for line, prevlines in search(f, 'python', 5): for pline in prevlines: print(pline, end='') print(line, end='') print('-' * 20)

deque(maxlen=3) append appendleft