python中有没有办法通过时间戳遍历日志文件?

时间:2019-04-19 08:07:56

标签: python-3.x

我正在写我的硕士学位论文,并尝试以下面要描述的方式遍历日志文件:

我的日志文件是以下格式的txt文件:

Jul 27 16:51:30 Event 1
Jul 27 16:53:38 Event 2
Jul 27 16:55:38 Event 3
Jul 27 16:59:39 Event 4
Jul 27 17:05:39 Event 5
Jul 27 17:07:39 Event 6
Jul 27 17:12:30 Event 7
Jul 27 17:14:38 Event 8
Jul 27 17:15:38 Event 9
Jul 27 17:18:39 Event 10
Jul 27 17:21:39 Event 11
Jul 27 17:22:39 Event 12

我想以15分钟的时间窗口和5分钟的时间步长读取日志文件,并将结果附加到列表中。例如,我有一个空列表test_data = [],并希望得到以下结果:

print(test_data[0])
Event 1
Event 2
Event 3
Event 4
Event 5

print(test_data[1])
Event 4
Event 5
Event 6
Event 7
Event 8

print(test_data[2])
Event 5
Event 6
Event 7
Event 8
Event 9

有人可以帮我吗?可以做到吗?

1 个答案:

答案 0 :(得分:0)

with open('test.log') as f:
    test_data = []
    for i, e in enumerate(f):
        if i % 5 == 0:
            test_data.append('')
        test_data[-1] += e.split(maxsplit=3)[3]

print(test_data[0])
print(test_data[1])
print(test_data[2])
  1. 使用withas(可迭代的f)打开日志文件。
  2. 初始化一个空列表
  3. 循环f
  4. 您有要求的每5个步骤,append在列表末尾有一个新的空白字符串。
  5. Event #拆分来提取maxsplit=3,以便Event#可以组合在一起。
  6. join Event #到列表的最后一个元素的末尾。然后转到4