我正在为Web应用程序编写一个日志文件查看器,为此我想通过日志文件的行分页.文件中的项目是基于行的,底部是最新项目.
所以我需要一种tail()方法,可以n从底部读取行并支持偏移量.我想出的是这样的:
def tail(f, n, offset=0):
"""Reads a n lines from f with an offset of offset lines."""
avg_line_length = 74
to_read = n + offset
while 1:
try:
f.seek(-(avg_line_length * to_read), 2)
except IOError:
# woops. apparently file is smaller than what we want
# to step back, go to the beginning instead
f.seek(0)
pos = f.tell()
lines = f.read().splitlines()
if len(lines) >= to_read or pos == 0:
return lines[-to_read:offset and -offset or None]
avg_line_length …Run Code Online (Sandbox Code Playgroud) 一些方法可以做到这一点:
df.tailnrows参数来读取skiprows并读取所需的行数.可以用更简单的方式完成吗?如果不是,应该优先考虑这三者中的哪一个?为什么?
可能相关:
没有直接关系:
我正在逐行读取Python中的文件,我需要知道在读取时哪一行是最后一行,如下所示:
f = open("myfile.txt")
for line in f:
if line is lastline:
#do smth
Run Code Online (Sandbox Code Playgroud)
从我发现的例子中我发现它涉及搜索和完整的文件读数以计算行数等.我可以检测到当前行是最后一行吗?我试图检查"\n"是否存在,但在很多情况下,最后一行后面没有反斜杠N.
对不起,如果我的问题是多余的,因为我没有在SO上找到答案