93-re练习:匹配文件中指定模式

import re

def count_patt(fname, patt):
    cpatt = re.compile(patt)
    result = {}

    with open(fname) as fobj:
        for line in fobj:
            m = cpatt.search(line)  # 如果匹配不到,返回None
            if m:
                key = m.group()
                result[key] = result.get(key, 0) + 1

    return result

if __name__ == '__main__':
    fname = 'access_log'   # apache日志文件
    ip = '^(\d+\.){3}\d+'   # 日志开头的ip地址
    print(count_patt(fname, ip))
    br = 'Firefox|MSIE|Chrome'  # 日志中客户端浏览器
    print(count_patt(fname, br))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容