使用python从系统日志文件打印每天发生攻击的次数
我有一个名为使用python从系统日志文件打印每天发生攻击的次数,python,Python,我有一个名为auth的系统日志文件,我想打印出每天发生攻击的次数 我的印象是,日期是实现这一目标的关键。我正在考虑为当天发生的每次攻击在字典中插入一个日期(2008年1月),然后连续几天重复此过程,然后使用几个简单的if语句显示天数+计数 这是正确的方法吗?如果您的数据集相当大,那么MapReduce作业可能是一种方法。这可以在亚马逊EC2网络上运行。MapReduce是一种分布式数据处理方法。您编写了一个映射器(在您的例子中,这将解析文件并提取日期作为键值,提取任何其他您喜欢的字段作为值)和一
auth
的系统日志文件,我想打印出每天发生攻击的次数
我的印象是,日期是实现这一目标的关键。我正在考虑为当天发生的每次攻击在字典中插入一个日期(2008年1月),然后连续几天重复此过程,然后使用几个简单的if
语句显示天数+计数
这是正确的方法吗?如果您的数据集相当大,那么MapReduce作业可能是一种方法。这可以在亚马逊EC2网络上运行。MapReduce是一种分布式数据处理方法。您编写了一个映射器(在您的例子中,这将解析文件并提取日期作为键值,提取任何其他您喜欢的字段作为值)和一个reducer,该reducer对与给定键关联的所有值执行操作。在你的情况下,这将是找到总金额。MapReduce作业通常是用java编写的,正如我所看到的,但也支持python等其他语言 这看起来像是针对以下人员的工作: 每次你给一个还不存在的键赋值时,
defaultdict
不会像正常的dict
那样抛出KeyError
异常;相反,它创建了一个带有默认值的新键(在int
的情况下,0
非常适合我们)
from collections import defaultdict
attacks = defaultdict(int)
for line in logfile:
date = extract_date_from_line(line)
attacks[date] += 1