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 logging
logging.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] - 10
2019-01-16 15:33:48,576 - root - [10] - 20
2019-01-16 15:33:48,577 - root - [11] - 30
2019-01-16 15:33:48,577 - root - [12] - 40
2019-01-16 15:33:48,577 - root - [13] - 50

面向对象版(自己制定)

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

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

import logging
logger = 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 json
dic ={'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 json
dic ={'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码的排位确定的字母

 

猜你喜欢

转载自www.cnblogs.com/shicongcong0910/p/10278597.html