通过yield实现文件的读取

next():读取生成器内容

next():读取生成器内容

def bylineread(fimename):
    with open(fimename) as f:
        line = f.readline()
        while line:
            yield line
            line = f.readline()
#read是一个生成器对象
read = bylineread('data.txt')
print(read)
#1.next读取生成器内容
print(next(read))
print(next(read))

运行:
在这里插入图片描述

for遍历循环读取

def bylineread(fimename):
    with open(fimename) as f:
        line = f.readline()
        while line:
            yield line
            line = f.readline()
#read是一个生成器对象
read = bylineread('data.txt')
print(read)
#for
for item in read:
    print(item)

运行:
在这里插入图片描述

文件对象是可以foe循环遍历的

from collections import Iterable
f = open('data.txt')
print(isinstance(f,Iterable))
for i,item in enumerate(f):
    if i == 10:
        break
    print(i,item)

运行:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42213622/article/details/85170908