分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

logging模块,序列化,random模块,json和pickle

发布时间:2023-09-06 02:30责任编辑:熊小新关键词:jsjson

1.logging

logging模块用来记录软件的各种状态.,开发人员可以通过日志的内容对程序进行修改.

import logging logging.debug(‘debug message‘) logging.info(‘info message‘) logging.warning(‘warning message‘) logging.error(‘error message‘) logging.critical(‘critical message‘)

 默认情况下logging打印到标准输出中,只显示了大于warning级别的日志,这说明默认的日志级别设置warning之上的.

日志等级为:debug < info < warning < error < critical

函数版:

  屏幕和文件二选一,写入文件中的默认编码是GBK

  python中定义好的,直接用就可以

mport logginglogging.basicConfig( ???????#logging的基本配置 ???level=logging.DEBUG, ???#对logging的显示权限等级进行设置 ???format=‘%(asctime)s - %(name)s - [%(lineno)d] - %(message)s‘,) ??????????????????????????#定义一个模板logging.debug("10")logging.info(‘20‘)logging.warning(‘30‘)logging.error(‘40‘)logging.critical(‘50‘)结果:2019-01-16 15:33:48,570 - root - [9] - 102019-01-16 15:33:48,576 - root - [10] - 202019-01-16 15:33:48,577 - root - [11] - 302019-01-16 15:33:48,577 - root - [12] - 402019-01-16 15:33:48,577 - root - [13] - 50

面向对象版(自己制定)

  屏幕和文件都可以,支持多个输出方式,写入文件中的编码可以自己定义

  自己制定的需要我们一步一步来操作

import logginglogger = logging.getLogger("开发日志") ??#获取一个新的日志fomatter = logging.Formatter(‘%(asctime)s - %(name)s-%(lineno)d - %(message)s‘)#定义一个模板ah = logging.StreamHandler() ?#生成一个屏幕流ch = logging.FileHandler(‘aa.log‘,‘a‘,encoding=‘utf-8‘) ??#生成一个文件流ch.setFormatter(fomatter)      #将定义的模板绑定给我们存储日志的流ah.setFormatter(fomatter)logger.setLevel(logging.DEBUG)    #设置日志的记录等级setLevel(logging.DEBUG)logger.addHandler(ch)          #将流加载到日志中logger.addHandler(ah)logger.debug("10")logger.info(‘20‘)logger.error(‘30‘)logger.warning(‘40‘)logger.critical(‘50‘)

 2.序列化

将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。

  2.1 json

  多个语言都在通用

    序列号:

      dump # 将对象转成字符存储在文件中

      load #将文件中的字符转成对象

          dump和load存储  

      dumps #将对象转成字符串

      loads #将字符串转换成对象

          dumps和loads不存储

import jsondic ={‘1‘:2,‘2‘:3}lst = [1,23,4,56,7,8]f = ?open(‘mm.txt‘,‘w‘,encoding=‘utf-8‘json.dump(dic,f) ??#将字典存放到文件mm.txt中,并且字典格式不变
import jsondic ={‘1‘:2,‘2‘:3}lst = [1,23,4,56,7,8]f = ?open(‘mm.txt‘,‘r‘,encoding=‘utf-8‘) s = json.load(f) ????#文件中的内容 读取出来 并且dic的格式不变依旧是字典形式print(s) ???

   2.2 pickle

    import pickle

      python中自带的模块 也有dump,load,dumps,loads四个模块跟json相似

        dump 将python中的数据结构转化成二进制数,存储到文件中

        load 将文件中的二进制数转换成python中的数据结构    

           dumps是将python的数据结构转换成二进制的文件

        loads是将二进制的文件转换成python的数据结构

 3.random

  随机

  3.1 随机的小数

print(random.random()) ?#0-1之间的小数print(random.uniform(1,5)) #0-5之间的小数

  3.2 随机整数

print(random.randint(1,25)) ?#1-25之间的整数

  3.3指定范围

print(random.randrange(1,10,2))#指定范围 1-10之间的偶数

   3.4 抽牌

lst = [99,88,77,5,67]print(lst[random.randrange(len(lst))]) ?#随机抽取lst中的下标
lst = [99,88,77,5,67]print(random.choice(lst))    #随机抽取一个 choice(可迭代对象)
lst = [99,88,77,5,67]print(random.choices(lst,k=3))#随机抽取k个值 但是容易出现重复
lst = [99,88,77,5,67]print(random.sample(lst,k=2)) ?#随机抽取k个值 但是不出现重复

   3.5 洗牌 顺序进行打乱

lst = [99,88,77,5,67]random.shuffle(lst) ?#顺序打乱 print(lst)

  3.6 字母

print(chr(random.randrange(65,91))),print(chr(random.randrange(65,91))), ???#随机出现字母 数字是根据asscii码的排位确定的字母

 

logging模块,序列化,random模块,json和pickle

原文地址:https://www.cnblogs.com/shicongcong0910/p/10278597.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved