Python 文件迭代器(2)

上一篇博文(也就是我的第一篇博文)讲了Python文件迭代器的属性。

那篇博文讲到,在Python中,迭代器是文件对象的内秉属性,而迭代器用法 for line in File 会改变File对象的迭代器属性,这个属性不因退出循环而被还原。


今天在使用Python处理一个小文件的过程中发现,file.read()和file.readlines()这两个命令同样会对file对象的迭代器属性产生影响,从而给迭代器用法带来不利的影响。


同样用foo.txt文件为例,它的文件内容是:

line1  
line2  
line3  
line4  
line5  
line6  
line7  
line8  
line9 

执行以下代码:

# coding = gbk
# program name: FileIterator2
import sys
import os

os.chdir(sys.path[0])

with open('foo.txt','r') as file:
    
    for line in file:
        print line

其输出为:

line1


line2


line3


line4


line5


line6


line7


line8


line9


请按任意键继续. . .

这里,文件迭代器能够正常工作。

当在文件迭代器前增加file.read()语句后,即执行以下代码:

# coding = gbk
# program name: FileIterator2
import sys
import os

os.chdir(sys.path[0])

with open('foo.txt','r') as file:
    
    file.readlines()
    
    for line in file:
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值