从上次读取后从文件中提取新数据的Python脚本

2024-09-28 01:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python脚本来执行以下内容:

我想每隔十分钟读取一个日志文件,每次读取时,我都会将上次读取后添加的任何数据提取到该文件中(最好不必每次读取整个日志文件)。示例:-

在09:00我读了日志文件,内容是:-

1. 2011-07-04 11:15:04,507 Processing request 17897931 from status 7 to 13
2. 2011-07-04 11:15:04,508 Processing request 17897931 from status 13 to 17
3. 2011-07-04 11:15:04,508 Processing request d0fcb681 from status 7 to 13
4. 2011-07-04 11:15:04,509 Processing request d0fcb681 from status 13 to 17
5. 2011-07-04 11:15:04,509 Processing request 178819a1 from status 7 to 13

在09:10,我再次读取日志文件,现在的内容是:-

^{pr2}$

我的脚本如何提取新行(第6行)。到9。)?

我有一个shell脚本,它已经通过使用文件的inode来完成这个任务。我正在寻找一个基于python的解决方案。

我的计划是通过crontab执行脚本。

你们知道我怎么做吗?


Tags: 文件to数据from脚本示例内容request
1条回答
网友
1楼 · 发布于 2024-09-28 01:24:59
  1. 检查文件大小
  2. 等待大小更改
  3. 打开文件,搜索到以前的大小
  4. 阅读

示例:

import os, time
size = os.stat(file).st_size
time.sleep(600)
fh = open(file)
fh.seek(size)
newData = fh.read()

如果另一个进程同时向日志中写入数据,则此示例将不时地读取部分行。我将把这个解决方案留作练习:)

相关问题 更多 >

    热门问题