📅  最后修改于: 2023-12-03 15:27:37.558000             🧑  作者: Mango
本文介绍如何使用 Python 编写一个程序来读取文件的最后 n 行。这个程序可以用于查看大型日志文件等。
要读取文件的最后 n 行,可以按以下步骤操作:
seek()
方法将文件指针移动到倒数第 n 行的开头位置。readlines()
方法读取文件指针位置到文件结尾的所有行。代码示例:
def tail(filename, n):
with open(filename) as f:
lines = f.readlines()
total_lines = len(lines)
# 如果文件总行数小于 n,则返回全部行
if total_lines <= n:
return lines
# 移动文件指针到倒数第 n 行的开头位置
f.seek(0)
for i in range(total_lines - n):
f.readline()
# 读取文件指针位置到文件结尾的所有行
return f.readlines()
在上面的示例中,我们定义了一个 tail()
函数,它接收两个参数:文件名和要读取的行数。函数使用 with open()
语句打开文件,以避免忘记关闭文件导致的资源泄漏等问题。然后,它使用 readlines()
方法读取文件所有行,并计算总行数。如果文件总行数小于等于要读取的行数,则返回全部行。否则,它使用 seek()
方法将文件指针移动到倒数第 n 行的开头位置,并使用 readlines()
方法读取从该位置到文件结尾的所有行。
下面是一个完整的示例代码:
def tail(filename, n):
with open(filename) as f:
lines = f.readlines()
total_lines = len(lines)
# 如果文件总行数小于 n,则返回全部行
if total_lines <= n:
return lines
# 移动文件指针到倒数第 n 行的开头位置
f.seek(0)
for i in range(total_lines - n):
f.readline()
# 读取文件指针位置到文件结尾的所有行
return f.readlines()
if __name__ == '__main__':
filename = '/path/to/your/file.txt'
n = 10
last_n_lines = tail(filename, n)
print(last_n_lines)
在上面的示例代码中,我们使用 tail()
函数读取了指定文件的最后 10 行,并将结果打印到控制台。你可以根据自己的需求修改文件名和要读取的行数。
以上就是编写一个 Python 程序来读取文件的最后 n 行的介绍。如果你有任何问题或建议,请随时在评论区留言。