python readline()判断读完的真正方法

python读文件的readline()函数有个设定很蠢。当它读完最后一行后,不会判断自己读到最后一行了,如果不让它停止,它会一直读空行。

 网上搜到的方法全都是写个判断,如果readline()读到空行就算文件末尾了。这种方法显然也很蠢:如果我读的文件中有空行怎么办?

真正有效的方法是:

with open(path,'rb') as f:
    N=-1                       #用N记录当前读取的行号(空行不算在内)
    f.seek(0,2)                #指针移动到文件末尾
    size=f.tell()              #此时指针的位置即文件末尾的位置
    f.seek(0,0)                #把指针移回文件开头
    while f.tell()<size:         #如果指针在size之前
        s=f.readline()         #用readline()读一行
        if s.strip()=='':      #如果读到的是空行
            continue           #跳过该行
        N+=1                   #行号+1

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值