首页 > 编程语言 > 详细

python的生成器

时间:2019-02-17 19:47:57      阅读:195      评论:0      收藏:0      [点我收藏+]

1、 什么是生成器:只要在函数体内出现yield关键字,那么再执行函数就不会执行函数代码,会得到一个结果,该结果就是生成器                                                                                  2、生成器就是迭代器

yield的功能                                                                                                                                     

1)、yield为我们提供了一种自定义迭代器对象的方法                                                                         

2)、yield与return的区别:

  1.yield可以返回多个值

  2.函数暂停和再继续是由yield帮我们保存的

3、设计一个查看实时更新文件的更新状态,比如日志文件

import time  

def tail(filepath):                      #定义一个查看文件的函数

    with open(filepath, ‘rb‘) as f:      #打开形参为filepath
        f.seek(0,2)                      #把光标移动到末尾

        while True:                      #循环监控日志

            data = f.readline()          #读取文件末尾

            if data:                    #加入有数据就用yield返回

                yield data

            else:                        #否则就睡眠0.05秒

                time.sleep(0.05)

def grep(file, k):                      #定义过滤关键字函数

    for i in tail(file):                #循环生成器中的数据

        if k in i.decode(‘utf-8‘):      #因为是用二进制读取方式,所以需要解码显示

            print(i.decode(‘utf-8‘))

grep(‘a.txt‘, ‘500‘)                    #监控a.txt最新日志,并过滤500的错误代码

 技术分享图片

python的生成器

原文:https://www.cnblogs.com/shiguoqiang/p/10392245.html

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