python-3.x - 我如何计算出现次数
问题描述
我需要根据日志文件中的 %LINK-3-UPDOWN 创建前 5 个向上/向下的接口。并且还需要根据 %SEC-6-IPACCESSLOGDP 的数量计算停止的 ICMP 数据包数量。日志文件如下所示:
9 月 22 日 15:12:09 145.89.109.1:%SEC-6-IPACCESSLOGP:列表 120 拒绝 tcp 80.82.77.33(0) -> 145.89.109.49(0),1 个数据包 9 月 22 日 16:11:15 145.89.109.11 28w6d:%LINK-3-UPDOWN:接口 GigabitEthernet1/20,将状态更改为向上 9 月 22 日 16:11:15 145.89.109.11 28w6d:%LINEPROTO-5-UPDOWN:接口 GigabitEthernet1/20 上的线路协议,将状态更改为向上 9 月 22 日 15:16:09 145.89.109.1:%SEC-6-IPACCESSLOGP:列表 120 拒绝 tcp 216.158.238.186(0) -> 145.89.109.49(0),1 个数据包 9 月 22 日 15:17:10 145.89.109.1:%SEC-6-IPACCESSLOGP:列表 120 拒绝 tcp 184.105.139.98(0) -> 145.89.109.49(0),1 个数据包 9 月 22 日 15:22:10 145.89.109.1:%SEC-6-IPACCESSLOGS:列表 78 被拒绝 145.89.110.15 1 个数据包 9 月 22 日 16:20:46 145.89.109.11 28w6d:%LINEPROTO-5-UPDOWN:接口 GigabitEthernet1/20 上的线路协议,将状态更改为关闭 9 月 22 日 16:20:46 145.89.109.11 28w6d:%LINK-3-UPDOWN:接口 GigabitEthernet1/20,将状态更改为关闭
我的代码如下,但我没有得到我想要的结果:
infile = open("router1.log","r") #Open log bestand in "read modus"
dictionary = {} #Maak lege dictionary aan
for line in infile: #For-loop die elke regel afgaat in log-bestand
try:
naam = line.split(":")[3] #variable naam die regel split naar een lijst met index 3
naam2 = line.split(":")[4] #variable naam die regel split naar een lijst met index 4
if naam.strip()in dictionary.keys(): #"Als" naam zich bevindt in dictionary voer onderstaande uit:
dictionary[naam.strip()]+=1
else: #Anders voer onderstaan uit:
dictionary[naam.strip()]=0
except:
continue
解决方案
如果我正确解释了您的问题,那么您的问题是您无法获得正确的计数值。
为了解决这个问题,您希望将特定日志问题的第一次出现设置为值 1 而不是 0。所以您的 else 语句应该是:
else:
dictionary[naam.strip()]=1
如果您不这样做,您的计数将始终少 1,希望对您有所帮助!
推荐阅读
- android - 如何在水平平面列表中显示箭头以指示存在不可见的滚动视图内容
- php - 连接到php本地服务器时-t fileName选项中的-t是什么意思
- pytorch - 无法在 PyTorch 中规范化张量
- batch-file - 在所有子目录上工作所需的修改
- python - 决策树类型错误:“float”和“str”实例之间不支持“<”
- redmine - 我无法在 Redmine 4.0.2 上通过电子邮件创建问题
- python - Google App Engine,不支持 urllib3 和 requests 吗?
- javascript - 如何将反应组件中的css文件作为原始文本导入?
- python - 如何在python中将列值转换为列标题?
- sql-server - Entity Framework 6 vs Dapper vs SQL Server 中的存储过程 vs 请求