python练习:抓取统计log内ip数量

#!/usr/bin/python 
#-*- coding: utf-8 -*-

import os
import re

rawfile = '/var/log/auth.log'

def rawparse(rawfile):
    ipdict = {}
    fhandle = open(rawfile,'r')
    regexp = re.compile('d{1,3}.d{1,3}.d{1,3}.d{1,3}')
    for line in fhandle:
        result = regexp.findall(line)
        if result and ipdict.has_key(result[0]):
            ipdict[result[0]] = ipdict[result[0]] + 1
        elif result:
            ipdict[result[0]] = 1
    print ipdict
    fhandle.close()

rawparse(rawfile)

可以更好的地方:

re,匹配ip地址,这样匹配的口径太大

循环读取文件不是for line in fhandle.readline()

findall返回的是列表

原文地址:https://www.cnblogs.com/silenceli/p/3549487.html