📅  最后修改于: 2023-12-03 15:39:41.739000             🧑  作者: Mango
本程序旨在帮助程序员实现打印文本文件中最后 N 行的功能,方便查看程序输出或日志文件。
将本程序拷贝至您的项目中,或者直接使用 wget
命令下载:
wget https://github.com/example/last-lines-printer/raw/main/last-lines-printer.py
在您的程序中导入 last-lines-printer.py
模块,并调用 last_lines_printer()
函数进行打印:
from last_lines_printer import last_lines_printer
file_path = '/path/to/your/file.txt'
n = 10 # 需要打印最后 N 行
last_lines_printer(file_path, n)
last_lines_printer(file_path, n)
file_path
: 要打印的文本文件路径n
: 需要打印的最后 N 行本程序的实现采用了 Python 语言和文件读写操作。具体实现细节见 last-lines-printer.py
中的代码注释。
# 导入必要的模块
import os
def last_lines_printer(file_path, n):
"""打印文本文件中最后 N 行"""
# 判断文件是否存在
if not os.path.isfile(file_path):
raise FileNotFoundError(f'{file_path} not found')
with open(file_path, 'rb') as f:
# 移动文件指针到文件末尾
f.seek(0, os.SEEK_END)
# 记录当前文件指针位置
end_position = f.tell()
# 迭代找到最后 N 行所在的位置
line_count = 0
position_pointer = end_position
while position_pointer >= 0 and line_count < n:
# 移动文件指针到当前位置
f.seek(position_pointer)
# 读取当前位置字符
current_character = f.read(1)
# 判断当前是否为行尾符
if current_character == b'\n':
line_count += 1
# 移动文件指针到上一个位置
position_pointer -= 1
# 找到最后 N 行所在位置后,读取并打印这些行
f.seek(position_pointer + 1)
last_lines = f.read(end_position - (position_pointer + 1)).decode('utf-8')
print(last_lines)
# 示例代码
if __name__ == '__main__':
file_path = '/path/to/your/file.txt'
n = 10 # 需要打印最后 N 行
last_lines_printer(file_path, n)
本程序可以快速打印文本文件中最后 N 行,是程序调试和日志查看的有力工具。代码简单易懂,可以方便地嵌入到您的项目中使用。