Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python日志解析

python日志解析

作者头像
py3study
发布于 2020-01-14 06:45:23
发布于 2020-01-14 06:45:23
55200
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

Python字典的setdefault()方法

setdefault(key[, default])

If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.

如果键在字典中,返回这个键所对应的值。如果键不在字典中,向字典 中插入这个键,并且以default为这个键的值,并返回 default。default的默认值为None

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> dict = {} 
>>> dict [ 'key' ] = 'a' 
>>>字典 
{ 'key''a' } 
>>> dict.setdefault('key''b')   #键key存在,故返回简直a。 
'一种' 
>>>字典 
{ 'key''a' } 
>>> dict.setdefault('key0''b' )  #键key0不存在,故插入此键,并以b为键值。 
'b' 
>>>字典 
{ 'key0''b''key''a' } 

日志分析

利用字典分析apache访问日志的脚本,以提取IP地址,字节数和状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/ usr / bin / env python 
“” 
用法: 
apache_log.py some_log_file 
 
该脚本使用一个命令行参数:要解析的日志文件的名称,然后解析lof文件并生成一个报告,该报告将远程主机与传输给它们的字节数相关联。 
“” 
 
导入 系统 
 
def  dictify_logline(line): 
        split_line = line.split() 
        return  { 'remote_host' :split_line [ 0 ]'status' :split_line [ 8 ]'bytes_sent' :split_line [ 9 ]} 
 
def  generate_log_report(logfile): 
        report_dict = {} 
        对于 行  中 的日志文件: 
                line_dict = dictify_logline(行) 
                打印 line_dict 
                尝试: 
                        bytes_sent = int(line_dict [ 'bytes_sent' ]) 
                除了 ValueError: 
                        继续 
                report_dict.setdefault(line_dict [ 'remote_host' ][])。append(bytes_sent) 
        返回 report_dict 
 
如果 __name__ ==  “ __main__” : 
        如果不是 len(sys.argv)>  1 :  
                打印 __doc__ 
                sys.exit(1 ) 
        infile_name = sys.argv [ 1 ] 
        尝试: 
                infile = open(infile_name,'r' ) 
        除了 ValueError: 
                打印“您必须指定要解析的有效文件”  
                sys.exit(1 ) 
        log_report = generate_log_report(infile) 
        打印 log_report 
        infile.close() 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx 基于客户端IP分析
下面是 nginx_analysis_log3.py 部分代码,获取程序全部代码,请关注我的 YP小站 微信公众号并回复 nginx客户端IP分析
YP小站
2020/06/04
1.9K0
Nginx 基于客户端IP分析
python3 setdefault的
当字典 d[k]找不到正确的键时,Python会抛出异常,有没有一种优雅的方法来避免这种情况呢?答案是肯定的. index0.py 从索引中获取单词出现的频率信息,并写入列表 --没有使用dict
py3study
2020/01/02
3830
Python字典详细操作
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
Yuou
2022/09/26
5440
[MYSQL] 自定义mysql慢日志分析工具
MYSQL性能分析最快的就是慢日志分析, 慢日志可以记录超过long_query_time的SQL, 也可以记录未使用索引的SQL(log_queries_not_using_indexes), 一般未使用索引的SQL会比较慢, 但也不是绝对的, 所以这个参数默认是OFF的.
大大刺猬
2024/05/28
2320
基于HMM的中文词性标注 POSTagging
给定 标注文本corpus4pos_tagging.txt,训练一个模型,用模型预测给定文本的词性
Michael阿明
2020/07/13
2.2K2
基于HMM的中文词性标注 POSTagging
python: dict(字典) 操作
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
JNingWei
2018/09/27
8660
python 脚本学习(一)
功能:用于读取某日志文件,可指定某个匹配条件,返回文本中匹配到的该行和前面的n行。
py3study
2020/01/07
1.3K0
Python学习教程 (六)
作业(三) 使 “作业(二)” 中的程序都能接受命令行参数 import sys sys.argv import optparse 用到的知识点 2.备注 每个提到提到的“用到的知识点”为相对于前面的题目新增的知识点,请综合考虑。此外,对于不同的思路并不是所有提到的知识点都会用着,而且也可能会用到未提到的知识点。但是所有知识点都在前面的讲义部分有介绍。 每个程序对于你身边会写的人来说都很简单,因此你一定要克制住,独立去把答案做出,多看错误提示,多比对程序输出结果和预期结果的差异。 学习锻炼“读程序”,
生信宝典
2018/02/05
9250
流畅的 Python 第二版(GPT 重译)(二)
我们在所有的 Python 程序中都使用字典。即使不是直接在我们的代码中,也是间接的,因为dict类型是 Python 实现的基本部分。类和实例属性、模块命名空间和函数关键字参数是内存中由字典表示的核心 Python 构造。__builtins__.__dict__存储所有内置类型、对象和函数。
ApacheCN_飞龙
2024/05/24
4180
流畅的 Python 第二版(GPT 重译)(二)
Python字典知识大全
主要存储具有映射关系的数据
Python知识大全
2020/02/13
7790
Python字典知识大全
Python中的几种数据类型
大体上把Python中的数据类型分为如下几类: Number(数字) 包括int,long,float,complex String(字符串)
古时的风筝
2018/01/08
1.3K0
Python语句
>>> range(1, 11, 2) #起始写了表示从起始开始,后面的11不包含,2表示步长值
py3study
2020/01/10
1K0
Python字典Dictionary
Python字典Dictionary 特点: 1.可变容器模型; 2.存储任意类型对象; 3.key不一定唯一,如重复按最后出现的计算; 4.键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行 格式:{'k1':'v1','k2':'v2','k3':'v3'} 基本操作 定义一个字典 dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; 输出 try: # 正常输出 print("dict['Name']: ", dict
前端小鑫同学
2022/12/24
3920
python学习笔记:字典
一、字典是python中最灵活的内置数据结构类型,如果把列表看作是有序的对象集合,那么字典就是无序的集合,字典和列表的主要差别在于:字典当中的元素是通过键来存取的,而不是通过偏移量存取。python字典的主要属性如下:
py3study
2020/01/14
1.3K0
Python字典进阶:setdefault技巧让你的代码更优雅,用setdefault优化你的Python数据处理流程
setdefault方法的基本功能是:在字典中查找指定的键,如果该键存在,则返回其对应的值;如果该键不存在,则在字典中插入该键,并将其值设置为指定的默认值,然后返回这个默认值。
小白的大数据之旅
2024/11/20
6990
面试题(3):Python基础
可以看出,转换的过程是将 key 的下划线进行拆分,然后下划线后边的字符嵌套在前面字符的值中。
天道Vax的时间宝藏
2021/08/11
2250
Python 字典(Dictionary) setdefault()和update()方法
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
周小董
2019/03/25
1.2K0
Nginx 流量统计分析
下面是 nginx_large_file_flow_analysis3.py 部分代码,获取程序全部代码,请关注我的 YP小站 微信公众号并回复 nginx流量统计
YP小站
2020/06/04
5.2K0
网络基础
《Python黑帽子:黑客与渗透测试编程之道》的读书笔记,会包括书中源码,并自己将其中一些改写成Python3版本。书是比较老了,anyway,还是本很好的书
中龙技术
2022/09/29
1.5K0
网络基础
python 快速入门
导入 #from dir1 import test #import dir1.test as test 列表推到: b3 =[x for x in xing if x in ming] print(b3)  li = [1, 2, 3, 4] [elem*2 for elem in li]  print [x*y for x in [1,2,3] for y in  [1,2,3]] zip: l1=[1,2,3,4] l2=[2,4,6,7] print(zip
py3study
2020/01/15
4670
相关推荐
Nginx 基于客户端IP分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验