zoukankan      html  css  js  c++  java
  • 包的使用及其它模块

    一、包

      1.什么是包?

      他是一系列文件的结合体,表示形式就是一个文件夹,该文件夹内部通常会有一个__init__.py文件,创建包的目的不是为了运行,而是被导入使用,包只是一种形式而已,包的本质就是一种模块。

      2.包的作用?

      包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来,随着功能越写越多,我们无法将所有的功能都放在一个文件夹中,于是我们用模块去组织功能,随着模块越来越多,我们就需要用文件将模块文件组织起来,来提高程序的结构性和可维护性。

      3.怎么样导入包?

      首次导入包,先产生一个执行文件的名称空间:1.创建包下面的__init__.py文件的名称空间.

                            2.执行包下面的__init__.py文件中的代码,将产生的名字放入包下面的__init__,py文件名称空间中.

                            3.在执行文件中拿到一个指向包下面的__init__.py文件名称的名称空间.

    二、日志模块

      logging.getLogger([name]):返回一个logger对象,如果没有指定名字将返回root logger.

      logging.debug()、logging.info()、logging.warning()、logging.error()、logging.critical():设定root logger的日志级别

      logger:logger.setlevel(logging.warning):指定最低日志级别,低于warning将被忽略。

      logger.addfilter(filt)、logger.removefilter(filt):添加或删除指定的filter。

      logger.addhandler(hdlr)、logger.removehandler(hdlr):增加或删除指定的handler。

      Handlers:handler对象负责发送相关的信息到指定的目的地。可以是文件、屏幕、网络等。

      handler.setlevel(lel):指定被处理的信息级别,低于lel级别的信息将被忽略。

      handler.setformatter():给handler选择一个输出格式

      handler.addfilter(filt)、handler.removefilter(filt):新增或删除一个filter对象

    import logging
    
    # 1.logger对象:负责产生日志
    logger = logging.getLogger('转账记录')
    # 2.filter对象:过滤日志(了解)
    
    # 3.handler对象:控制日志输出的位置(文件/终端)
    hd1 = logging.FileHandler('a1.log',encoding='utf-8')  # 输出到文件中
    hd2 = logging.FileHandler('a2.log',encoding='utf-8')  # 输出到文件中
    hd3 = logging.StreamHandler()  # 输出到终端
    
    # 4.formmater对象:规定日志内容的格式
    fm1 = logging.Formatter(
            fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
            datefmt='%Y-%m-%d %H:%M:%S %p',
    )
    fm2 = logging.Formatter(
            fmt='%(asctime)s - %(name)s:  %(message)s',
            datefmt='%Y-%m-%d',
    )
    
    # 5.给logger对象绑定handler对象
    logger.addHandler(hd1)
    logger.addHandler(hd2)
    logger.addHandler(hd3)
    
    # 6.给handler绑定formmate对象
    hd1.setFormatter(fm1)
    hd2.setFormatter(fm2)
    hd3.setFormatter(fm1)
    # 7.设置日志等级
    logger.setLevel(20)
    # 8.记录日志
    logger.debug('写了半天 好累啊 好热啊 好想释放') 

    三、hashlib模块

      hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法。

    import hashlib  # 这个加密的过程是无法解密的
    md = hashlib.sha3_256()  # 生成一个帮你造密文的对象
    md.update('hello'.encode('utf-8'))  # 往对象里传明文数据  update只能接受bytes类型的数据
    md.update(b'Jason_@.')  # 往对象里传明文数据  update只能接受bytes类型的数据
    print(md.hexdigest())  # 获取明文数据对应的密文
    

      注意:hashlib 加密的字符串类型为二进制编码,如果数据量大,可以分块多次调用update()

    import hashlib
    # 传入的内容 可以分多次传入 只要传入的内容相同 那么生成的密文肯定相同
    md = hashlib.md5()
    md.update(b'areyouok?')
    md.update(b'are')
    md.update(b'you')
    md.update(b'ok?')
    print(md.hexdigest())  # 408ac8c66b1e988ee8e2862edea06cc7
    408ac8c66b1e988ee8e2862edea06cc7

    四、openpyxl模块

      openpyxl是近几年比较火的操作excel表格的模块。在openpyxl中,主要用到三个概念:Workbooks,Sheets,Cells。Workbook就是一个excel工作表;Sheet是工作表中的一张表页;Cell就是简单的一个格。

      导入模块

    from openpyxl import Workbook
    
    wb = Workbook()          #生成一个工作簿
    wb1 = wb.create_sheet('index',0)        #创建一个表单页,后面可以通过数字来控制位置
    wb2 = wb.create_sheet('index1')
    wb1.title = 'login'            #后期可以通过表单页对象点title来修改表单名字
    
    from openpyxl import Workbook
    
    wb1['A3'] = 111           # 在表中的第一列的第三行添加“111”
    wb1.cell(row = 6,column = 3,value = 100)            # 在第三行的第六列添加100
    wb1.['A5'] = '=sum(A3:A4)'      #  第一列的第五行是第一列的第三行和第四行之和
    wb.save('text.xlsx')
    

      

      

      

    生前无需久睡,死后自会长眠,努力解决生活中遇到的各种问题,不畏将来,勇敢面对,加油,你是最胖的,哈哈哈
  • 相关阅读:
    多线程 NSThread GCD
    UICollectionView 集合视图用法,自定义Cell
    简单的注册 登录
    数据库sqlite的使用
    沙盒机制 归档 反归档
    图片异步加载 ,KVO
    iOS开发系列--通知与消息机制
    制作iOS Ad-Hoc测试应用
    NT_iOS笔记—判断iPhone6
    iOS开发多线程篇—单例模式(ARC)
  • 原文地址:https://www.cnblogs.com/panshao51km-cn/p/11215311.html
Copyright © 2011-2022 走看看