使用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