• 包的概念,hashlib模块和openpyxl模块


    包的概念

    ''''''
    '''
    什么是包?
        它是一系列模块的结合体,就是个文件夹,本质就是模块
        该文件夹中应该有__init__文件
        
    首次导入包
        会运行执行文件的代码 创建执行文件的名称空间
            1.创建包下面的__init__文件的名称空间
            2.执行__init__文件,执行__init__文件的代码,把产生的名字放入创建的名称空间中
            3.在执行文件中会有一个连接__init__名称空间的名字
    
    在导入语句中.号左边的肯定是文件夹(包)
    
    
    对包的理解我们要站在两个角度看
    1.站在包的开发者来看
        当模块特多时,我们需要分文件夹管理
        为了防止模块所在文件夹后期改名的问题 包里面的模块在相互导入的时候统一使用相对导入
        
        
    2.站在包的使用者来看
        你使用包时需要将包所在文件夹的绝对路径添加到环境变量中
        
        
    在python2 中包的文件夹下必须有__init__文件
    在python3 中包的文件夹下不一定要有__init__文件  
    不能随意删除__init__文件
    '''
    
    '''
    __init__文件就是将模块全部导入进__init__文件
    '''

    hashlib模块

    # hashlib 加密模块
    import hashlib  # 加密之后无法解密
    md = hashlib.md5()  # 帮你生成一个加密对象
    md.update('world'.encode('utf-8'))  # 往里面传入明文数据 update只能接收bytes类型数据
    md.update('dsb'.encode('utf-8'))  # 可以对一个加密对象多次传入明文数据
    # print(md.hexdigest())  # 获得明文数据对应的密文
    
    
    md1 = hashlib.md5()
    md1.update(''.encode('utf-8'))
    # print(md1.hexdigest())
    
    
    # 传入内容过多时,可以分次传入  相同内容被多次传入和被一次传入得到的密文相同
    md2 = hashlib.sha1()
    md2.update(b'hello')
    md2.update(b'world')
    # print(md2.hexdigest())  # 6adfb183a4a2c94a2f92dab5ade762a47889a5a1
    md3 = hashlib.sha1()
    md3.update(b'helloworld')
    # print(md3.hexdigest())  # 6adfb183a4a2c94a2f92dab5ade762a47889a5a1
    
    
    '''
    hashlib模块应用场景
        1.加密密码
        2.检验文件是否一致
    '''
    
    
    # 加盐处理
    # 就是给输入的密码在进行加密处理前  给他加上一些新内容  再进行加密处理
    
    
    # 动态加盐
    # 动态加盐可以将用户名和密码拼接在一起进行加密处理

    openpyxl模块

    # openpyxl 操作excel的模块
    
    '''
    03 版本之前excel的后缀名为xls
    03 版本之后excel的后缀名为xlsx
    '''
    
    # 还有两个模块可以操作excel
    # xlwd  xlrt
    
    # xlwd 写excel
    # xlrt 读excel
    
    # xlwd和xlrt既支持03版本之前的excel也支持03版本之后的excel
    # openpyxl只支持03版本之后的excel
    
    
    
    
    #
    '''
    from openpyxl import Workbook
    wb = Workbook()  # 生成一个工作簿
    wb1 = wb.create_sheet('index')  # 添加一个列表
    wb1.title = 'name'  # 后期修改列表名
    wb1['A3'] = 11
    wb1['A4'] = 19
    wb1.cell(row=8,column=9,value=0)  # 在第8行 第9列 添加值0
    wb1['B3'] = '=sum(A3:A4)'  # 在B3添加A3,A4的和
    wb1.append(['username','age','hobby'])
    wb1.append(['jason',18,'study'])
    wb1.append(['tank',72,'吃生蚝'])
    wb1.append(['egon',84,'女教练'])
    wb1.append(['sean',23,'会所'])
    wb1.append(['nick',28,])
    wb1.append(['nick','','秃头'])
    
    # 保存新建的excel
    wb.save('index')
    '''
    
    
    #
    from openpyxl import load_workbook
    wb = load_workbook('index.xlsx',read_only=True,data_only=True)
    print(wb.sheetnames)  # 读出excel文件中有几个表格,以列表的形式返回
    print(wb['name']['A3'].value)  # 如果要读取空的单元格 直接报错
    print(wb['name']['B3'].value)  # 通过代码产生的excel表格必须经过人为操作之后才能读取出函数计算出来的结果值
    
    
    res = wb['name']
    print(res)
    for i in res:
        for j in i:
            print(j.value)
  • 相关阅读:
    取消Git每次拉取、提交推送都要输入密码
    input输入框的oninput和onchange事件
    NPM学习笔记
    命令行语法格式中常用符号的含义
    npm卸载模块报错
    软件的Alpha、Beta、GM、OEM、LTS等版本的含义(转)
    MySQL常用指令
    Git常用指令
    .net Core 解决Form value count limit 1024 exceeded. (文件上传过大)
    EF Core 迁移整理
  • 原文地址:https://www.cnblogs.com/asdaa/p/11221053.html
Copyright © 2020-2023  润新知