日志,序列反序列和正则表达式
1 logging模块
logging模块有两个处理方式, 一个是直接使用logging处理, 另一个是生成一个对象, 用对象来处理
1.1 处理方法一
导入logging模块
使用logging.basicConfig来设置配置信息
参数level设置日志级别
参数format可以设置一条日志信息的打印格式
参数datefmt可以设置时间的显示格式
参数filename可以设置将日志输出成文件的文件名字, 该文件指定之后控制台就不显示了
参数filemode可以设置写入文件的写入模式
写入日志信息的可以使用
logging.日志级别(日志信息)
其中日志界别的顺序是: debug < info < warning < error < critical
使用代码如下
import logging
myFormat = '[ %(levelname)s : %(asctime)s ] %(pathname)s[ %(lineno)d ] == > %(message)s'
myDateFormat = '%Y-%m-%d %X'
logging.basicConfig(level=logging.INFO, format=myFormat, datefmt=myDateFormat, filename='log', filemode='a')
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')
1.2 处理方法二
获取logging对象
logging.getLogger()
可以指定名字, 默认为root
设置文件或者屏幕输出对象
logging.FileHandler(文件名字, mode=读写模式, encoding=编码, delay=布尔值)
logging.StreamHandler()
设置日志等级
logging对象.setLevel(等级)
设置打印格式
FileHandler对象.setFormatter(格式)
StreamHandler对象.setFormatter(格式)
绑定Handler对象给logging对象
logging对象.addHandler( 文件或者流Handler对象 )
具体使用方法
import logging
log = logging.getLogger()
fh = logging.FileHandler('log2')
sh = logging.StreamHandler()
log.setLevel(logging.DEBUG)
myFormat = '[ %(levelname)s : %(asctime)s ] %(pathname)s[ %(lineno)d ] == > %(message)s'
formatter = logging.Formatter(myFormat)
fh.setFormatter(formatter)
sh.setFormatter(formatter)
log.addHandler(fh)
log.addHandler(sh)
logging.debug('debug message')
2 json模块
可以通过json模块来讲数据转化为json格式数据, 并且存储
还可以直接读取文件并将高json内容转化为对应的python格式数据
将数据转为json字符串
json.dumps(需要转的数据)
将json数据转化为对象的Python数据
json.loads( json字符串 )
其中对应的有dunp()和load()方法, 这俩有两参数, 用于直接打开文件句柄来读或者写
具体是用实例如下
import json
dic={'name':'whc','age':23,'sex':'male'}
data=json.dumps(dic)
# '{"name": "whc", "age": 23, "sex": "male"}'
f=open('json','w')
f.write(data)
f.close()
f=open('json')
new_data=json.loads(f.read())
# {'name': 'whc', 'age': 23, 'sex': 'male'}
使用dunp或者load方法的处理如下
import json
dic={'name':'whc','age':23,'sex':'male'}
json.dump(dic, open('json',"w"))
newData = json.load(open('json'))
# {'name': 'whc', 'age': 23, 'sex': 'male'}
3 正则表达式