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
解析配置文件
可以对文件进行 增、删、改、查操作


posted @ 2018-06-25 20:23  Shinonon  阅读(125)  评论(0编辑  收藏  举报