先说通用的方法
简单的思路分析:
-
我们可以通过 len(file.readlines()) 知道文件的总行数,那么我们就只需要知道怎么判别是否读取到了len(file.readlines())行
-
然后python有一个内置函数enumerate, 可以让一个可迭代对象获得一个index
-
然后我们就可以当 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() 和 一些其他处理文件的方法
不过这些方法我也不怎么用,而且感觉有点麻烦(可能没遇到合适的场景吧)
就这样