上海网站推,竞价外包,潍坊高新区建设局网站,做ppt好的网站logging、json与pickle、time与datatime、random 文章目录 logging、json与pickle、time与datatime、random一、logging二.json与pickle三.time与datatime四.random 一、logging
logging模块用来记录日志信息。
import logging
# 进行基本的日志配置
logging.basicConfig(
fi…logging、json与pickle、time与datatime、random 文章目录 logging、json与pickle、time与datatime、random一、logging二.json与pickle三.time与datatime四.random 一、logging
logging模块用来记录日志信息。
import logging
# 进行基本的日志配置
logging.basicConfig(
filenameaccess.log,
#format表示日志写入的格式
format%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s,
#datefmt表示日志时间格式设置
datefmt%Y-%m-%d %H:%M:%S %p,
#level表示阈值
level10
)# 日志级别遵循原则自下而上进行匹配不小于设定阈值的日志会被记录(默认30)
#debug-》info-》warning-》error-》critical
logging.debug(调试信息) #10
logging.info(正常信息) #20
logging.warning(不好啦着火啦) #30
logging.error(报错信息) #40
logging.critical(严重错误信息) #50format的具体参数可以参考下面的图片 使用logging模块时一般参照如下的格式
import logging.config
# 定义三种日志输出格式
standard_format %(asctime)s - %(filename)s:%(lineno)d - %(name)s - %(levelname)s - %(message)s
simple_format %(asctime)s - %(levelname)s - %(message)spathr日志文件路径
data%Y-%m-%d %H:%M:%S %pLOGGING_DIC {version: 1,disable_existing_loggers: False,#此处将配置的format参数传入formatters: {formatter1: {format: standard_format,datefmt:data},formatter2: {format: simple_format,datefmt:data},},#filters负责筛选日志信息目前用不到filters: {},handlers: {#打印到终端的日志sm: {level: DEBUG,class: logging.StreamHandler, # 打印到屏幕formatter: formatter2 # 日志输出格式与上方传入formatters的相对应},#保存到文件的日志,收集info及以上的日志h1: {level: 20,# 阈值也可以写数字class: logging.FileHandler, # 保存到文件formatter: formatter1,filename: path, # 日志文件encoding: utf-8, # 日志文件的编码再也不用担心中文log乱码了},},loggers: {#logging.getLogger找不到匹配的日志标题时会使用中的日志格式设置: {handlers: [h1,sm],# 此处表示日志使用到的输出方式与上方的handlers相对应level: DEBUG, # 阈值两处阈值设置不一时以阈值小的为准propagate: False, # 向上更高level的logger传递},#日志设置的标题要与logging.getLogger传入的相匹配日志标题:{handlers: [h1],level: 30,propagate: False,},},
}
#将配置字典加载到logging中
logging.config.dictConfig(LOGGING_DIC)
loglogging.getLogger(日志标题)
#下面为具体的日志信息
logging.debug(调试信息)
logging.info(正常信息)
logging.warning(不好啦着火啦)
logging.error(报错信息)
logging.critical(严重错误信息)二.json与pickle
json、pickle模块的作用是将数据序列化。 json保存的数据可以与多种语言交互但是它只支持python部分的类型如字典、列表、元组、字符串、数字、True、False、None等。 pickle只能用于python语言但是它支持python的所有数据类型。
import json
#将python数据a转为json格式
bjson.dumps(a)
#将json格式的数据b转为python数据
ajson.loads(b)#将python数据a转为json并写入文件,f表示文件句柄
json.dump(a,f)
#从文件中读取json数据并转为python数据b
bjson.load(f)注一个文件一般只存一个json数据
import pickle
#将python数据a转为pickle格式
bpickle.dumps(a)
#将pickle格式的数据b转为python数据
apickle.loads(b)#将python数据a转为pickle并写入文件,f表示文件句柄
pickle.dump(a,f)
#从文件中读取pickle数据并转为python数据b
bpickle.load(f)三.time与datatime
import time
#获取时间戳
time.time()
1726914530.610406#获取结构化时间
time.localtime()
time.struct_time(tm_year2024, tm_mon9, tm_mday21, tm_hour18, tm_min27, tm_sec21, tm_wday5, tm_yday265, tm_isdst0)
#可以通过上面结构化时间的key取出具体的值
time.localtime().tm_wday
5#获取格式化时间
time.strftime(%Y-%m-%d %H:%M:%S)
2024-09-21 18:30:07#时间戳、结构化时间、格式化时间的转换
#时间戳转结构化时间转格式化时间
time.strftime(%Y-%m-%d %H:%M:%S,time.localtime(time.time()))
#格式化时间转结构化时间转时间戳
time.mktime(time.strptime(2024-09-21 18:30:07,%Y-%m-%d %H:%M:%S))#程序休眠3s
time.sleep(3)#计时器从第一次调用开始计时再次调用会记录下调用时经过的时间
time.perf_counter()#与time.localtime用法相同不过为世界标准时区下的时间
time.gmtime()#将时间戳转为星期 月 日 时:分:秒 年的格式
time.ctime()
Sat Sep 21 18:46:12 2024#将结构化时间转为星期 月 日 时:分:秒 年的格式
time.asctime()import datetime
#获取当前时间(精确为微秒)
datetime.datetime.now()
#获取当前时间(精确为秒)
datetime.datetime.now().replace(microsecond0)
#修改获取时间的年份
datetime.datetime.now().replace(year2020)
#计算7天后的时间
(datetime.datetime.now()datetime.timedelta(days7)).replace(microsecond0)
#时间戳转化为格式化时间
import time
datetime.datetime.fromtimestamp(time.time()).replace(microsecond0)四.random
random模块通常用来取随机数
import random
#生成一个0~1的随机小数概率服从高斯分布
random.random()
#生成一个1~10的随机整数概率服从均匀分布
random.randint(1,10)
#生成一个1~10的随机小数概率服从均匀分布
random.uniform(1,10)
#获取列表中随机一个值服从均匀分布
random.choice([1,2,3])
#获取列表中随机两个值选的元素不会重复
random.sample([1,2,3],2)
#获取列表中随机两个值选的元素可以重复
random.choices([1,2,3],k2)
#打乱可变类型的顺序
random.shuffle()
#随机数种子
random.seed()