python举例-自学Python4.9-生成器举例

自学Python4.9 - 生成器举例

举例1:监听文件输入(用户一边输入程序,一边可以监听输入的内容)

1217531-20190321213007191-247176269.png

此时在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')

1217531-20190321215400985-993030491.png

1217531-20190321215409181-845002209.png

打印监听每行字前面加******

1217531-20190321215912511-2060723821.png

监听每行字如果有python才打印, 实现监听过滤功能。

1217531-20190321220021931-661341935.png

举例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里面含有"生成器"的行数打印出来:

1217531-20190325140731678-1342196569.png

1217531-20190325140811428-1324749048.png

举例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())

1217531-20190325141015168-1641811780.png

......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值