import re

def count_patt(fname, patt): result = {} cpatt = re.compile(patt) fobj = open(fname) for line in fobj: m = cpatt.search(line) if m: key = m.group() if key not in result: result[key] = 1 else: result[key] += 1 fobj.close() return result

if name == 'main': fname = '/var/log/httpd/access_log' ip_patt = '^(\d+.){3}\d+' br_patt = 'Firefox|Chrome|MSIE' print count_patt(fname, ip_patt) print count_patt(fname, br_patt)