Python日志、序列化、正则模块
使用Python内置模块的目的:拿来别人已经写好的模块功能,直接import内置模块使用,简化程序,避免重复造轮子的过程,提示自己的开发效率;
一、 loging日志模块:
1、 loging模块可以记录不同安全级别日志:
debug、info、warning、error、critical(关键的)可以灵活使用;(5中安全级别日志全部记录,或选择其中几种级别记录)
import logging logging.debug("修复") #5种安全级别 灵活使用 logging.info("提示") logging.warning("注意")#--------注意---------高于waring(默认等级)此安全级别的日志才会显示到屏幕上 logging.error("错误") logging.critical("重要") 执行结果 WARNING:root:注意 ERROR:root:错误 CRITICAL:root:重要
2、日志输出流
既然记录了日志就应该 显示到屏幕 或者 保存至文件,这就是日志输出流;
3、日志格式配置
上述日志信息单纯,记录价值不大,我们可以设置它的日志格式。loging模块提供了2种 日志配置方式;
(1)basicConfig函数配置方式(一切围绕basicConfig函数里放什么参数展开)
logging.DEBUG #设置日志安全级别
format='%(asctime)s' #asctime:配置当前时间
'---%(message)s' #message:配置日 义信息
'%(lineno)s', #lineno:打印输出日志函数所在的行号
datefmt='%Y-%m-%d %H:%M:%S', #设置日期格式 datefmt
filename="loger", #设置"日志输出流的文件'filename
filemode="a") #设置以追加方式记录到文件 filemode
logging.basicConfig(level=logging.DEBUG, #设置日志安全级别 logging.DEBUG format='%(asctime)s' #asctime:配置当前时间 '---%(message)s' #message:配置日志的自定义信息 '%(lineno)s', #lineno:打印输出日志函数所在的行号 datefmt='%Y-%m-%d %H:%M:%S', #设置日期格式 datefmt filename="loger", #设置"日志输出流的文件'filename filemode="a") #设置以追加方式记录到文件 filemode logging.debug("修复") logging.info("提示") logging.warning("注意") logging.error("错误") logging.critical("重要")
(2)loger对象配置日志格式
basicConfig只能同时选择一种日志输出流,而loger对象可以把日志信息,同时输出到屏幕和文件里。
loger对象配置日志格式,一切围绕高度定制化、组装原则,1 创建loger 2创建输出对象 3创建输出格式对象, 相互组装起来;
loger=logging.getLogger() #得到一个原始的loger对象 file_stream=logging.FileHandler("Loger2") #创建1个文件输出对象 sh=logging.StreamHandler() #创建一个屏幕输出对象 Format=logging.Formatter("%(asctime)s-%(levelname)s-%(message)s") #创建一个日志格式对象 #------------------------------------------------------------------------------------------------------------- #loger配置日志格式方式:就是围绕一切高度定制化的原则展开 #(1)先创建出 loger对象,屏幕输出对象,文件输出对象,日志格式对象 # (2)让 loger对象 吸取 文件、屏幕输出流对象 #(3) 让 文件、屏幕输出流对象吸取日志格式对象功能 file_stream.setFormatter(Format) #文件输出流吸取 日志格式对象 sh.setFormatter(Format) #屏幕输出流吸取 日志格式对象 loger.setLevel(logging.DEBUG) #设置日志等级 loger.addHandler(file_stream) #原始的loger对象 吸走文件输出对象,就可以把日志信息输出到文件了; loger.addHandler(sh) #原始的loger对象,吸走屏幕输出对象,就可以把日志信息输出到屏幕了; #loger对象貌似有了吸星大法,可以通过addHandler()方法,吸取对象的功能,以为己用; loger.debug("修复") loger.info("提示") loger.warning("注意") #默认安全级别也是waring,waring以上安全级别的日志才回输出 loger.error("错误") loger.critical('重要')
二、序列化模块 json、picle
1、 josn就是各种语言 之间 信息交换的桥梁,一种各语言普遍支持的 中间数据类型;
import re
str0='h123elloworld'
pattern0=re.compile(r'^h(.*?)e') #创建1条匹配规则
match_obj=re.match(pattern0,str0) #march方法返回1个match对象
# print(match_obj) #<_sre.SRE_Match object; span=(0, 5), match='hello'>
print(match_obj.group()) #匹配成功的字符串 hello
# print(match_obj.start()) #开始匹配的index位置 0
# print(match_obj.end()) #结束匹配的index位置 5
#
# print(match_obj.span()) #字符串 索引跨度
# print(match_obj.span(2))
re.match()
re.search():只匹配找到的第一个结果
re.sub():替换匹配结果
re.sub([all ],flags=re.S):替换所有匹配结果,flags=re.S匹配所有换行和空格
desc=mark_safe(re.sub (r'[\n]','<br/>',desc1,flags=re.S)) #替换所有换行,在前端显示
re.match()和re.search()的区别?
性能
match()函数只检测RE是不是在string的开始位置匹配
search()会扫描整个string查找匹配,会扫描整个字符串并返回第一个成功的匹配
- Py修行路 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)
- python(3)模块、函数式 、三元运算、Lambda表达式、序列化,正则
- Python基础(正则、序列化、常用模块和面向对象)-day06
- python-3_函数_匿名函数_正则_yield_迭代器_序列化_内置函数_模块
- python 3.x 分析日志的模块(正则匹配)
- python-包及日志模块使用
- Python 学习笔记 - 正则表达式模块
- Python模块学习 ---- logging 日志记录(一)
- Python:正则表达式(三)-re模块的内容
- Python中re(正则表达式)模块学习
- Python模块知识5:日志logging
- Python中re(正则表达式)模块学习
- Python:logging日志模块
- 学习日志---python(模块以及常用模块)
- python成长日迹--日志模块logging
- python正则表达式re模块详细介绍
- 解决多个py模块调用同一个python的logging模块,打印日志冲突问题
- python_使用marshal模块序列化
- python模块之re正则表达式
- Python模块学习 ---- logging 日志记录