Python迭代与文件读取

可迭代对象(Iterable):可迭代对象并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问。常见比如集合数据类型,如list、tuple、dict、set、str等;或生成器(generator)和带yield的生成器函数(generator function)。
迭代器协议:对象需要提供next方法,要么返回下一项,要么引起stopiteration异常,终止迭代。Python中的内置工具(for,sum,min,max等)使用迭代器协议访问对象。

迭代器只能向前不能往后,一个例子说明:

vList=[1,2,3,4]#列表
vIter=iter(vList)#可迭代对象
for i in vIter: print(i)#输出1,2,3,4
for j in vIter: print(j)#无输出,可迭代对象vIter已空
for q in vList: print(q)#可以重复输出1,2,3,4

常见迭代器使用方法举例:

  1. list迭代器,next用法
   l = [1,3,5,7]
   it = iter(1) #让l提供一个能访问自己的迭代器
   next(it) #1  从迭代器中取值,让迭代器去获取l中的一个元素
   next(it) #3
   next(it) #5
   next(it) #7
   next(it) # StopIterable 异常
  1. 集合迭代器,next用法
s = {'唐僧','悟空','悟能','悟净'}
it = iter(s)
try:
    while True:
        x = next(it)
        print(x)
except StopIteration:
    print('遍历结束')
  1. 文件迭代器-按字节读取
f=open('D:\python_file\data1.txt','r')#以只读模式打开文件对象

while True:

ch=f.read(1) #一次读取一个字符

     if not ch:#判断是否为空字符

          break

     print(ch)#打印

f.close()#关闭文件对象
  1. 文件迭代器-按行
f=open('D:\python_file\data1.txt','w')#以只写模式打开文件对象
while True:
      line=f.readline()
      if not line:break
      print line
f.close()
  1. 文件迭代器-全部读取
f=open(filename)
for char in f.read():
    print char
f.close()
f=open(filename)
for line in f.readlines():
    print line
f.close()
f=open(filename)
for line in f.():
    print line
f.close()
  1. 文件迭代器-fileinput组件
import fileinput
for line in fileinput.input(filename):
    print line
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值