python处理日志

怎么统计ip出现次数的前10?

python代码如下:

f = open('../www_access_20140823.log')
res = {}
for l in f:
    arr = l.split(' ')
    ip = arr[0]
    url = arr[6]
    status = arr[8]
    res[(ip,url,status)] = res.get((ip,url,status),0)+1
res_list = [(k[0],k[1],k[2],v) for k,v in res.items()]

for k in sorted(res_list,key=lambda x:x[3],reverse=True)[:10]:
    print k

脚本中使用到的方法:

list.spilt()

按照指定的分割符进行切割

list.get(k,d)
get相当于一条if...else...语句,参数k在字典中,字典将返回list[k];如果参数k不在字典中则返回参数d,如果K在字典中则返回k对应的value值;
例子:
l = {5:2,3:4}
print l.get(3,0)返回的值是4;
Print l.get(1,0)返回值是0;

items()

>>> dict = { 1 : 2'a' : 'b''hello' : 'world' } 

>>> dict.values() 

['b'2'world'

>>> dict.keys() 

['a'1'hello'

>>> dict.items() 

[('a''b'), (12), ('hello''world')] 






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值