自学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())
......
自学Python4.9-生成器举例的更多相关文章
- 自学Python4.8-生成器(方式二:生成器表达式)
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 自学Python4.7-生成器(方式一:生成器函数)
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 自学Python4.5-装饰器举例
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 自学Python4.2 迭代器、生成器
迭代器.生成器一.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么, 因为人们很少在迭代途中往后退.另外 ...
- 自学Python4.3-装饰器固定格式
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 自学Python4.1-文件操作
文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 关闭文件(非必须) 一.打开文件 open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打 ...
- 自学Python4.4-装饰器的进阶
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 自学Python4.2-装饰器
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- 自学Python4.6-迭代器
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
随机推荐
- iOS-响应链(Responder Chain)
2017.05.08 20:40* 字数 1306 阅读 740评论 6喜欢 9 工作接近一年,很久没有更新博客.工作中学到很多知识点后面将花时间整理,作为对一年知识学习的总结: 下面是本篇博客的写作 ...
- 一些Cassandra+YCSB异常
这两天一直在用YCSB.昨天还可以用的YCSB,今天在测试Cassandra时遇到问题了. 环境是在公用局域网的一台debian机器,YCSB和Cassandra都在这台机器上.异常是开始运行YCSB ...
- yum 命令
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指定的服务器自动下载RPM包 ...
- 网站之robots.txt文件
一.robots.txt是什么? robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容. 当一个搜索引擎(又称搜索 ...
- jmeter5.0生成html报告 快速入门
JMeter性能测试5.0时代之-多维度的图形化HTML报告 快速入门 1.确认基本配置 在jmeter.properties或者user.properties确认如下配置项: jmeter.save ...
- 二、npm scripts
一.执行原理 安装npm 包,会将其package.json bin 字段添加到node_modules bin 里面,创建对应的.cmd文件,因此: 例如: "scripts": ...
- Chrome浏览器的版本查看 以及V8 javascript 引擎版本查看
1. 发现chrome浏览器最新版本里面带的V8 引擎 版本号与chrome的版本号有一个关系, 这里简单总结一下: 在地址栏里面输入: chrome://version 即可显示出来 比如我正在使用 ...
- Linux 下面 Sqlserver 2017 的简单安装
1. 公司网络太烂 yum 在线安装失败 2. 解决方法 找微软的官网 百度网盘 离线下载rpm包. https://packages.microsoft.com/rhel/7/mssql-serve ...
- C# Note1:深入浅出WPF-MVVM篇
一.资源说明 (1)配套视频:深入浅出WPF 讲的不错! 待更!
- Java内存泄漏分析
https://www.javatang.com/archives/2017/11/08/11582145.html?tdsourcetag=s_pcqq_aiomsg