python中for循环在遍历文件内容时的问题

f1= open(file1)
f2= open(file2)
for f1_line in f1:
    f2_line = f2.readline()
f1= open(file1)
f2= open(file2)
for f1_line in f1:
    for f2_line in f2:

以上两段代码我以为执行结果相同,但是并非这样。

第一段代码是从 f1 中取出第一行的同时,用readline方法取出 f2 的第一行。从f1取第二行,再从f2取第二行,以此类推。

第二段代码是从f1中取第一行后,分别与f2中取出的一二三四五......行比较。需要注意的是,由于文件指针的存在,在f2遍历一次后 ,文件指针指向末尾。此时从f1中取第二行将与空对象比较。

for循环遍历文件内容时要注意文件指针的问题。将文件内容用list方法列表化后,再执行遍历应该能消除这个差别,不过我没试。

运行第一段代码时发现了个问题。若f1中对象少于f2两个以上,则在f1取出最后一个后,再多抛出两个空对象for循环便终止。具体原理未知。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值