首页 > 其他 > 详细

文本匹配,只返回匹配成功的行

时间:2019-11-15 17:42:09      阅读:85      评论:0      收藏:0      [点我收藏+]
 1 from collections import deque
 2 
 3 
 4 def search(lines, pattern, history=5):
 5     previous_lines = deque(maxlen=history)  # 只取history值列
 6     # 提供了两端都可以操作的序列, 这意味着, 你可以在序列前后都执行添加或删除,
 7     # 当限制长度的deque增加超过限制数的项时, 另一边的项会自动删除
 8     for li in lines:
 9         if pattern in li:
10             yield li  # yield 进行迭代
11             # 带yield的函数是一个生成器,而不是一个函数了,这个生成器有一个函数就是next函数,next就相当于“下一步”生成哪个数,
12             # 这一次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,生成器并不会从foo函数的开始执行,只是接着上一步停止的地方开始,然后遇到yield后,return出要生成的数,此步就结束。
13         previous_lines.append(li)
14 
15 
16 if __name__ == __main__:
17     count = 0
18     with open(C:\\Users\\Administrator\\Desktop\\文件\\doc\\test.txt) as f:
19         for line in search(f, runningdoctor, 5):
20             print(line, end=‘‘)
21             count += 1
22             print(- * 20)
23         print(count)

 

文本匹配,只返回匹配成功的行

原文:https://www.cnblogs.com/jescs/p/11867597.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!