判断文件是否读取到最后一行

先说通用的方法

简单的思路分析:

  1. 我们可以通过 len(file.readlines()) 知道文件的总行数,那么我们就只需要知道怎么判别是否读取到了len(file.readlines())行

  2. 然后python有一个内置函数enumerate, 可以让一个可迭代对象获得一个index

  3. 然后我们就可以当 index == len(file.readlines()) 时候, 就可以判别了

以下是代码示例
 with open('./file.py', 'r', encode="UTF-8") as f:
     file_info = f.readlines()    # 读取所有的内容
 ​
 for i, line in enumerate(file_info):
     # ... 你的代码
     if i == len(file_info):
         print("这是最后一行")
         # ... 你的代码

剩下两个方法(简单说说)

有一个方法就是一般 (对,一般情况下)

一个文件结尾都是空行,所以你直接看文件末尾是不是空就行了

不过文件默认有个 \n 换行符, 可以strip()去除再判断

 if line.strip() == '':
     print("这是最后一行")
     # ... 你的代码    

第二个方法

这个方法就是别人想出来的,有漏洞,不过感觉好像也有点意思。 就记录一下子吧

想法:

1.该行读取的数据和最后一行数据相同,就是同一行

 last_line = file_info[-1]
 if line == last_line:
     print("这是最后一行")
     # ... 你的代码    

不过感觉这个应该会有bug, 毕竟如果两行数据相等就不行了

总结:

用我给出的第一个方法就可以了

不过好像也有seek() 和 一些其他处理文件的方法

不过这些方法我也不怎么用,而且感觉有点麻烦(可能没遇到合适的场景吧)

就这样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值