📅  最后修改于: 2023-12-03 14:46:11.459000             🧑  作者: Mango
在日常开发中,有时需要读取一个文件的最后几行,这在Python中是很容易实现的。
我们可以将文件内容读取到列表中,然后使用列表切片获取最后N行。
def tail(file_path, n=10):
with open(file_path, 'r') as f:
lines = f.readlines()
return lines[-n:]
该函数使用了open()函数打开文件,并使用readlines()方法读取文件内容生成列表。然后使用[-n:]切片获取最后N行,返回结果。
deque是Python中的一个双向队列类型,它支持从左侧和右侧快速添加和删除元素,并且长度可以限制。我们可以使用deque来维护最后几行的内容。
from collections import deque
def tail(file_path, n=10):
with open(file_path, 'r') as f:
lines = deque(f, n)
return list(lines)
该函数首先导入了deque类型,然后将文件内容传入deque类型中,并指定长度为N。最后将deque类型转换为列表并返回。
上述两种方法均可实现读取文件最后N行的功能。第一种方法直接使用了列表切片,简单明了。第二种方法使用了deque类型,使得内存消耗更小,并且在处理大文件时更为高效。
无论使用哪种方法,在读取大文件时都需要慎重考虑内存消耗问题。