【发布时间】:2017-04-20 18:59:38
【问题描述】:
我有一个日志文件,其中每一行的格式如下: 日期 ipaddr 网址状态
2017-03-02 13:02:43 123.123.123.123 /index.html 200
2017-03-02 13:02:46 123.123.123.124 /index.html 200
2017-03-02 13:02:47 123.123.123.125 /about1.html 404
2017-03-02 13:02:49 123.123.123.123 /about.html 200
日志文件有 100 万行,最多有 100 万个唯一 IP 地址。
我有一个查询文件,它是一个 IP 地址列表,每行一个 IP 地址。
123.123.123.123
123.123.123.124
123.123.123.125
我想解析文件和查询文件中的每个 IP,如果在日志文件中看到则打印 1,否则打印 0。
搜索日志文件的最快方法是什么。酸洗会有帮助吗?
【问题讨论】:
-
查询文件有多大?前三个字段是否保证长度相同(例如,没有错误的空格)?我不确定酸洗在这里如何适用,您有什么想法?
-
制作一组查询地址;遍历日志文件中的每一行,从行中提取地址;使用
in检查行地址是否在查询集中;收集检查结果。 -
最快的方法是使用
miltiprocessing,如果query file是大BTree 或numpy.arrayDataFrame。