自学Python4.9-生成器举例
自学Python之路-Python基础+模块+面向对象
自学Python之路-Python网络编程
自学Python之路-Python并发编程+数据库+前端
自学Python之路-django
自学Python4.9 - 生成器举例
举例1:监听文件输入(用户一边输入程序,一边可以监听输入的内容)
此时在file文件里面输入内容,在生成器执行里面可以看到file的内容,且后续一直为空,程序一直在执行,只是读出的数据是空。
进一步,如果line不为空才打印
f = open("file",encoding="utf-8") while True: line = f.readline() if line: print(line)
进一步,取消执行器看到的空格
f = open("file",encoding="utf-8") while True: line = f.readline() if line: print(line.strip())
如何用生成器实现:
def tail(filename): f = open(filename,encoding="utf-8") while True: line = f.readline() if line.strip(): print(line.strip()) tail('file')
打印监听每行字前面加******
监听每行字如果有python才打印, 实现监听过滤功能。
举例2:处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕
def check_file(filename,aim): with open(filename,encoding='utf-8') as f: #句柄 : handler,文件操作符,文件句柄 for i in f: if aim in i: yield i g = check_file('test.01','生成器') for i in g: print(i.strip())
将文件test.01里面含有"生成器"的行数打印出来:
举例3:写生成器,从文件中读取内容,在每一次读取到的内容之前加上‘***’之后再返回给用户
def check_file(filename): with open(filename,encoding='utf-8') as f: #句柄 : handler,文件操作符,文件句柄 for i in f: yield '***'+i for i in check_file('test.01'): print(i.strip())
......
作者:CARLOS_CHIANG
出处:http://www.cnblogs.com/yaoyaojcy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
posted on 2019-03-21 16:32 CARLOS_KONG 阅读(381) 评论(0) 编辑 收藏 举报