📜  Python – 读取文件的最后 N 行(1)

📅  最后修改于: 2023-12-03 14:46:11.459000             🧑  作者: Mango

Python - 读取文件的最后 N 行

在日常开发中,有时需要读取一个文件的最后几行,这在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

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类型,使得内存消耗更小,并且在处理大文件时更为高效。

无论使用哪种方法,在读取大文件时都需要慎重考虑内存消耗问题。