如何使用 Python 读取文件的最后一行
在 Python 编程中,读取文件是一个很常见的操作。在某些情况下,需要读取文件的最后一行,这需要使用一些特定的技术。
- 使用 seek 和 tell 方法
这是一个最简单的方法,可以通过文件对象的 seek 和 tell 方法来实现读取最后一行。先使用 tell 方法获取当前文件的大小,然后回到文件结尾前一个字符,并且向前搜索 ‘\n’ 字符,直到找到最后一行,并读取。
示例代码如下:
with open('file.txt', 'rb') as f:
f.seek(-2, 2)
while f.read(1) != b'\n':
f.seek(-2, 1)
last_line = f.readline().decode()
print(last_line)
该代码打开文件 file.txt 并回到文件末尾前一个字符,然后向前搜索 ‘\n’ 字符,并在找到 ‘\n’ 字符时返回该行。
- 使用文件缓存区
这种方法更简单,因为它不需要像前一种方法那样回到文件的结尾,并且假设文件中的最后一行不超过缓冲区大小。
示例代码如下:
with open('file.txt', 'r') as f:
last_line = f.readlines()[-1].strip()
print(last_line)
该代码打开文件 file.txt 并使用 readlines 方法读取全部行,并返回列表。然后,该代码从列表中选择最后一行,并删除结尾的空白字符。
注意点
上述代码可以在大多数情况下正常工作,但是在访问过大的文件时,使用第一种方法可能要快得多,因为它只需要指定缓冲区大小即可,而第二种方法需要全部读入内存,这可能会导致内存不足或程序速度较慢。
代码实现
下面是一个使用 seek 和 tell 方法读取文件最后一行的完整代码示例:
def last_line(file_path):
with open(file_path, 'rb') as f:
f.seek(-2, 2)
while f.read(1) != b'\n':
f.seek(-2, 1)
last_line = f.readline().decode()
return last_line
last_line('file.txt') # 输入文件名并返回最后一行的内容
下面是一个从文件缓存区读取最后一行的完整代码示例:
def last_line(file_path):
with open(file_path, 'r') as f:
last_line = f.readlines()[-1].strip()
return last_line
last_line('file.txt') # 输入文件名并返回最后一行的内容
这些代码示例有助于您使用 Python 访问文件并获取最后一行。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。