前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python 3.x 分析日志的模块(正

python 3.x 分析日志的模块(正

作者头像
py3study
发布于 2020-01-03 08:33:54
发布于 2020-01-03 08:33:54
81800
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#导入正则模块
import re
auth="no_shutdown_"
'''
分析日志的模块,查找日志中标志性信息产生的次数
'''
#定义你需要查找的对象的正则表达式wordcheck
#需要分析的日志的路径filesource
def checklog(wordcheck,filesource):

    #定义一个空的字典用来存放查询的结果
    size={}
    #异常捕获当文件不存在的时候抛出异常
    try:
        #打开日志文件
        file=open(filesource,"r")
        #循环读取日志文件的每一行
        for i in file:
            #使用re模块的search功能查找当前行是否能和正则匹配
            x=re.search(wordcheck,i)
            #如果匹配到结果则执行if中的代码
            if x:
                #取出查询到的结果
                tmp=x.group()
                #get函数作用是如果字典中取不到key的值则赋一个默认值,也就是每一次查询到一个新的结果就将这个结果作为key vlaue=0新加到字典中
                size[tmp]=size.get(tmp,0)
                #在字典中将value加1,记录一次查找
                size[tmp]+=1
        #关闭文件
        file.close()
    #如果有异常抛出文件异常
    except FileExistsError as e:
        print(e)
    #没有异常打印结果
    else:
        return size
#测试分析apache访问日志中的所有访问过的ip和次数
rs=checklog("(\d+\.){3}\d+","/var/log/httpd/access_log") 
print(rs)

结果 因为是测试机上的日志结果比较少 {'127.0.0.1': 58, '192.168.2.254': 10}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python(3)模块、函数式 、三元运
函数的默认参数:定义默认参数,如果下面调用函数时不指定参数,默认就是这个参数,默认参数可以无限定义
py3study
2020/01/15
5260
Python之路【第八篇】:Python
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码会越来越长,越来越不容易维护。
py3study
2020/01/16
1.1K0
Python之路【第八篇】:Python
一行Python代码可以做什么,超出你想象
在编程的世界里,简洁就是力量。Python以其优雅和简洁而著称,让开发者能够用更少的代码做更多的事。但这并不意味着功能上的妥协——Python的强大之处在于它允许在一行代码中执行多个语句,这不仅能提高的编码效率,还能使代码更加紧凑和易于阅读。
木头左
2024/06/23
1850
Python之re模块
re模块 在Python中想要使用正则表达式,就需要调用re模块来实现。 在 re 模块下的常用方法: 调用时程序最上面需要写 import re 常用的几个关键字: findall  :re.findall遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表。 格式:re.findall(‘前面放要查找的内容’,‘这里放被查找的内容’) search :re.search函数会在字符串内查找模式匹配,只要找到第一个匹配然后返回,如果字符串没有匹配,则返回None。                  返
新人小试
2018/04/12
1.1K0
python正则表达式与re模块-02
从上面两段代码中很容易就可以看得出来,使用正则表达式来校验手机号明显要比纯python 代码来的精简得多。
suwanbin
2019/09/26
6430
python正则表达式与re模块-02
Python23 内置模块讲解
参考博客http://www.cnblogs.com/alex3714/articles/5161349.html
py3study
2020/01/09
1.8K0
Python23 内置模块讲解
python学习-re模块
Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,在文本解析、复杂字符串分析和信息提取时是一个非常有用的工具,下面我主要总结了re的常用方法。 1.re的简介     使用python的re模块,尽管不能满足所有复杂的匹配情况,但足够在绝大多数情况下能够有效地实现对复杂字符串的分析并提取出相关信息。python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配。
py3study
2020/01/07
6940
常用模块
## 一、time与datetime模块 在Python中,通常有这几种方式来表示时间:
hankleo
2020/09/16
1.6K0
常用模块
Python网络爬虫入门篇
学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。
用户1679793
2019/03/22
2.1K0
Python网络爬虫入门篇
Python 常用模块续
在程序运行时保存数据的一种方法是把所有数据以格式化的方式写入一个简单的文本文件中,只要保存和装载的工具在所选格式上达成一致,我们就可以随心所欲地使用任何自定义格式。 1、pickle pickle模块将内存中的Python对象转化为序列化的字节流,这是一种可以写入任何类似文件对象的字节串,同时,pickle模块也可以根据序列化的字节流重新构建原来内存中的对象。 转换并写入文件:
py3study
2020/01/13
6040
python3 re模块
一.常用正则表达式符号和语法: '.' 匹配所有字符串,除\n以外 ‘-’ 表示范围[0-9] '*' 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 '+' 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+ '^' 匹配字符串开头 ‘$’ 匹配字符串结尾 re '\' 转义字符, 使后一个字符改变原来的意思,如果字符串中有字符*需要匹配,可以\*或者字符集[*] re.findall(r'3\*','3*ds')结['3*'] '*' 匹配前面的字符0次或多次 re.finda
用户1679793
2018/04/28
1.2K0
Python 关于日志的分析
项目情况介绍: 基于Python 3.6.6 ,实现对nginx访问的日志分析代码,实现了对日志中code的占比统计和浏览器类型和访问情况统计 实现的代码段有: 1.编写窗户函数,实现在一定的时间内对数据进行分析 2.通过正则表达式对日志进行匹配,加载日志文件,提取出文本里每行的日志信息 3.编写消费端代码,即使得提取到的数据能够按照消费端的代码进行处理 4.消息分发代码实现,通过queue,将提取的的文本放到队列里,供消费端代码处理 项目代码如下
py3study
2020/01/13
4990
python基础6
            *******************             *  异常处理与调式         *             ******************* ***常见错误:*** 1) 名字没有定义,NameError In [1]: print a --------------------------------------------------------------------------- NameError                                 Traceback (most recent call last) <ipython-input-1-9d7b17ad5387> in <module>() ----> 1 print a NameError: name 'a' is not defined 2) 分母为零,ZeroDivisionError In [2]: 10/0 --------------------------------------------------------------------------- ZeroDivisionError                         Traceback (most recent call last) <ipython-input-2-242277fd9e32> in <module>() ----> 1 10/0 ZeroDivisionError: integer division or modulo by zero 3) 文件不存在,IOError In [3]: open("westos") --------------------------------------------------------------------------- IOError                                   Traceback (most recent call last) <ipython-input-3-2778d2991600> in <module>() ----> 1 open("westos") IOError: [Errno 2] No such file or directory: 'westos' 4) 语法错误,SyntaxError In [4]: for i in [1,2,3]   File "<ipython-input-4-ae71676907af>", line 1     for i in [1,2,3]                     ^ SyntaxError: invalid syntax 5) 索引超出范围,IndexError In [5]: a = [1,2,3] In [6]: a[3] --------------------------------------------------------------------------- IndexError                                Traceback (most recent call last) <ipython-input-6-94e7916e7615> in <module>() ----> 1 a[3] IndexError: list index out of range In [7]: t =(1,2,3) In [8]: t[3] --------------------------------------------------------------------------- IndexError                                Traceback (most recent call last) <ipython-input-8-7d5cf04057c5> in <module>() ----> 1 t[3] IndexError: tuple index out of range In [9]: t[1:9]            ###切片的时候,若超出范围,则默认为全部,不报错 Out[9]: (2, 3) ####python异常处理机制:try......except......finally###### 例: #!/usr/bin/env python #coding:utf-8 try:                ###将可能发生错误的部分放在try下###     print "staring......"     li = [1,2,3]     print a     pri
py3study
2020/01/11
7380
从基础到最佳实践:精通Python正则表达式
Python re模块精通:解锁Regex文本处理能力!从数据提取、用户验证到自动化任务,掌握字符类、量词、锚点等核心概念。更有re.search()、re.sub()等函数,结合IGNORECASE等修饰符,提升数据处理效率,玩转Cloud Native!
云云众生s
2025/03/20
1740
python编写分析apache访问日志的脚本
编写用于分析apache日志的脚本,主要要求如下: 统计每个客户端访问apache服务器的次数 将统计信息通过字典的方式显示出来 分别统计客户端是Firefox和MSIE的访问次数 分别使用函数式编程和面向对象编程的方式实现 简单实现 # vim countweb.py #!/usr/bin/env python import re logfile = '/var/log/httpd/access_log' cdict = {} patt_ip = '^\d+\.\d+\.\d+\.\d+'
吴柯
2018/04/16
9140
python模块之re(正则表达式)
匹配模式 re.ASCII 同re.A,对应的内联标识为(?a),用于向后兼容。使元字符\w, \W, \b, \B, \d, \D, \s和\S仅匹配ASCII字符。该模式只在string模式下有意
枇杷李子橙橘柚
2019/05/26
1.2K0
python re详解
正则表达式的元字符有. ^ $ * ? { [ ] | ( ) .表示任意字符 []用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系。 ^ 如果
py3study
2020/01/15
6840
Python常用模块
json.dump和json.load不常用,主要是针对文件操作进行序列化和反序列化
星陨1357
2023/03/14
5890
Python常用模块
【Python基础】05、Python文
文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构——即在磁盘上组织文件的方法
py3study
2020/01/10
9950
【Python基础】05、Python文
用Python+MySQL实现2017年web日志分析报告
日志分析在web系统中故障排查、性能分析方面有着非常重要的作用。目前,开源的ELK系统是成熟且功能强大的选择。但是部署及学习成本亦然不低,这里我实现了一个方法上相对简单(但准确度和效率是有保证的)的实现。另外该脚本的侧重点不是通常的PV,UV等展示,而是短期内(如三天历史or一周历史)提供细粒度的异常和性能分析。 先说一下我想实现这个功能的驱动力(痛点)吧: 我们有不少站点,前边有CDN,原站前面是F5,走到源站的访问总量日均PV约5000w。下面是我们经常面临一些问题: CDN回源异常,可能导致我们
小小科
2018/05/03
1.1K0
用Python+MySQL实现2017年web日志分析报告
相关推荐
python(3)模块、函数式 、三元运
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验