自学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-生成器举例的更多相关文章

  1. 自学Python4.8-生成器(方式二:生成器表达式)

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  2. 自学Python4.7-生成器(方式一:生成器函数)

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  3. 自学Python4.5-装饰器举例

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  4. 自学Python4.2 迭代器、生成器

    迭代器.生成器一.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么, 因为人们很少在迭代途中往后退.另外 ...

  5. 自学Python4.3-装饰器固定格式

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  6. 自学Python4.1-文件操作

    文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 关闭文件(非必须) 一.打开文件 open('文件路径', '模式')      打开文件时,需要指定文件路径和以何等方式打开文件,打 ...

  7. 自学Python4.4-装饰器的进阶

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  8. 自学Python4.2-装饰器

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  9. 自学Python4.6-迭代器

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

随机推荐

  1. java 工具

    JClassLib 4.2 发布了,该版本支持 Java 7 和 Java 8 的类文件属性查看. JClassLib不但是一个字节码阅读器而且还包含一个类库允许开发者读取,修改,写入Java Cla ...

  2. [转帖]Kerberos和NTLM - SQL Server

    Kerberos和NTLM - SQL Server https://www.cnblogs.com/dreamer-fish/p/3458425.html 当我们使用Windows Authenti ...

  3. html5 datalist 选中option选项后的触发事件

    使用input + datalist 实现自动补全功能,其中datalist中的内容是根据input输入的内容动态变换的,代码如下 <!DOCTYPE HTML> <html> ...

  4. java随笔5 完整路径的应用

    不仅类,函数,甚至参数都可以获取完整路径

  5. Python基础知识2-内置数据结构(下)

    bytes.bytearray #思考下面例子: a = 1 b = a print(a == b)#True print(a is b)#True print(id(a) is id(b))#Fal ...

  6. python中的 list (列表)append()方法 与extend()方法的用法 和 区别

    参考: https://www.cnblogs.com/xuchunlin/p/5479119.html

  7. java学习之—数组的曾删改查

    /** * 数组的曾删改查 * Create by Administrator * 2018/6/8 0008 * 上午 9:54 **/ public class HighArray { priva ...

  8. 图像识别opencv学习自修第一天【opencv的安装】

    1. 安装步骤 (1)安装python (2)安装xcode (3)使用macports现成包安装opencv (4)安装scipy 2. 安装实战 (1)已经安装好了python,并安装好了virt ...

  9. Java多线程之Join方法阻塞线程

    package org.study2.javabase.ThreadsDemo.status; /** * @Auther:GongXingRui * @Date:2018/9/19 * @Descr ...

  10. python排序 sorted()与list.sort() (转)

    该文章为转载:原文地址为:https://www.cnblogs.com/zuizui1204/p/6422939.html 只要是可迭代对象都可以用sorted . sorted(itrearble ...