hashlib模块、shutil模块、shevle模块、xml模块、configparser模块
一、hashlib模块
1 什么是hash
hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值
如果把hash算法比喻为一座工厂
那传给hash算法的内容就是原材料
生成的hash值就是生产出的产品
2、为何要用hash算法
hash值/产品有三大特性:
1、只要传入的内容一样,得到的hash值必然一样
2、只要我们使用的hash算法固定,无论传入的内容有多大,
得到的hash值的长度是固定的
3、不可以用hash值逆推出原来的内容
基于1和2可以在下载文件时做文件一致性校验
基于1和3可以对密码进行加密
3、如何用
#1、造出hash工厂
m=hashlib.md5()
#2、运送原材料
m.update('你好啊'.encode('utf-8'))
m.update('世界'.encode('utf-8'))
#3、产出hash值
print(m.hexdigest())
#1、造出hash工厂
m=hashlib.md5('你'.encode('utf-8'))
#2、运送原材料
m.update('好啊世界'.encode('utf-8'))
#3、产出hash值
print(m.hexdigest())
注意:把一段很长的数据update多次,与一次update这段长数据,得到的结果一样 但是update多次为校验大文件提供了可能。
python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 进行进一步的处理然后再加密
m=hmac.new('小鸡炖蘑菇'.encode('utf-8'))#new 里面必须传值
m.update('hello'.encode('utf-8'))
print(m.hexdigest())
二、shutil模块
高级的 文件、文件夹、压缩包 处理模块
(文件拷贝、压缩与解压缩)
三、shevle模块
shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型
f=shelve.open(r'sheve.txt') # f['stu1_info']={'name':'egon','age':18,'hobby':['piao','smoking','drinking']} # f['stu2_info']={'name':'gangdan','age':53} # f['school_info']={'website':'http://www.pypy.org','city':'beijing'} print(f['stu1_info']['hobby']) f.close(
四、xml模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单
xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml:
# print(root.iter('year')) #全文搜索 # print(root.find('country')) #在root的子节点找,只找一个 # print(root.findall('country')) #在root的子节点找,找所有
对于任何标签都有三个特征:标签名、标签属性、标签的文本内容
可以进行 :查、改、增、删的操作
五、configparser
解析配置文件
可以对文件进行 增、删、改、查操作