如何在Python中对几个大型apache日志文件运行逻辑?

2024-03-28 22:16:15 发布

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

我有一堆apache日志文件,需要从中解析和提取信息。我的脚本对于一个文件来说工作得很好,但是我想知道处理多个文件的最佳方法。你知道吗

我应该:

- loop through all files and create a temporary file holding all contents
- run my logic on the "contact-ed" file

或者

- loop through every file
- run my logic file by file
- try to merge the results of every file

文件方面,我正在查看一年左右的日志,每天大约有200万个条目,报告了大量机器的日志。我的单文件脚本正在为每台机器生成一个带有“entries”的对象,所以我想知道:

问题:
我应该生成一个联合临时文件还是逐个文件运行,生成基于文件的对象并将x文件与相同y机器的条目合并?你知道吗


Tags: 文件the对象run脚本机器loopmy
1条回答
网友
1楼 · 发布于 2024-03-28 22:16:15

您可以使用globfileinput模块有效地循环所有这些文件,并将其视为一个“大文件”:

import fileinput
from glob import glob

log_files = glob('/some/dir/with/logs/*.log')
for line in fileinput.input(log_files):
    pass # do something

相关问题 更多 >