有没有一种方法可以从我在Python中停止的地方读取文件? [重复]

问题描述 投票:0回答:4

我正在尝试使用Python读取文件,将其关闭,然后从停止读取文件的位置再次读取它。

实际问题:我正在尝试处理每小时更新一次的Tomcat日志文件。因此,当我从Python端读取它时,会得到重复的(旧的)日志以及新的日志。

编辑:有没有一种有效的方法来从公用文件中读取新日志?

python python-3.x tomcat9
4个回答
6
投票

查看您的位置:offset = f.tell()

返回您所在的位置:f.seek(offset)

Relevant point in tutorial


3
投票

您可以为此使用pygtail,它会读取尚未读取的日志文件行,这将从上次处理或停止的位置开始

from pygtail import Pygtail
for line in Pygtail("path to your log file"):
    '''
    the process which you want to do
    '''

1
投票
  • 在关闭文件之前,保存您从其开始的行号
  • 使用linecache模块将该行作为当前行
  • 这里有一些代码可以使用

#导入linecache模块

导入行缓存

#定义要读取的文件的名称

文件名=“ test.txt”

#定义line_number

line_number = 3

#检索特定行

line = linecache.getline(filename,line_number)

打印(“%s的第%i行:”%(行号,文件名)]

打印(行)


0
投票

[如果有选择,请使Tomcat日志每隔一小时旋转一次。在这种情况下,您只需要读取日志目录中的未读文件即可。

© www.soinside.com 2019 - 2024. All rights reserved.