[原创]python统计nginx访问最多的IP数目

     一般面试的时候经常会出一道题,统计nginx日志里访问量最大的10个IP。如果用awk,方法有很多,下面就是一个:

     awk '{a[$1]++}END{for(i in a)print i ":" a[i]}' |sort -nr |head -n 10

     但是也有一些面试官会要求面试者用python写,那么脚本可以这么写:

#!/usr/bin/env python
a={}
with open('file','r') as f:
    for line in f.readlines():
    IP=line.strip().split()[0]
    if ip in IP:
       a[ip]+=1
    else:
       a[ip]=1
sorted(a.iteritems(),key=lambda asd:asd[1],reverse=True)

for i in a.keys(): 

     print i,":",a[i]

以上是python2:

sorted(a.iteritems(),key=lambda x:x[1],reverse=True)

如果是python3:

sorted(a.items(),key=lambda x:x[1],reverse=True)

原文地址:https://www.cnblogs.com/puremans/p/6435801.html