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

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-8json.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码的排位确定的字母

 

 

 

相关文章