python3筛选出日志中最多访问的前10个IP

bash脚本也能实现,现在用python3重写了下这个脚本,以后肯定用的上,直接看我的实践例子,用的是我博客的访问记录进行筛选的,直接上代码了:

#!/usr/bin/python3
#coding:utf-8
l = []
logs = {}
with open('sulao.cn-access.log', 'r', encoding='utf-8') as f:
    while True:
        line = f.readline()
        line = line.strip('\n')
        rows = line.split(' ')
        #添加每行数据到列表
        l.append(rows)
        if not line:
            break
#将列表第一列添加到字典并判断包含在字典内则值+1,否则值设置1
for x in l:
    if x[0] in logs:
        logs[x[0]] += 1
    else:
        logs[x[0]] = 1
#使用zip将字典键和值打包成元祖列表
f = zip(logs.values(), logs.keys())
#reverse参数用来排序,true倒序,false倒序
r = sorted(f,reverse=True)
#循环打印前10的元祖
for p in r[:10]:
    print(p)

微信截图_20181226115349.jpg

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/611.html