python全栈脱产第19天------常用模块---shelve模块、xml模块、configparser模块、hashlib模块
一、shelve模块
定义:是一种序列化的方式
方法:1.open 2.读写 3.close
特点:使用方法简单,提供一个名字就可以开始读写,读写方法与字典一致,你可以把它当成带有自动序列化功能的字典
原理:内部使用pickle,所以也存在跨平台性差的问题,自己存的只有自己知道怎么取
二、xml模块
定义:全称 可拓展标记语言 标记指的是代表某种含义的字符
用途:为了能够在不同的平台间继续数据的交换,为了能够是交换的数据让对方看懂,就需要按照一定的语法规范来书写
格式:1.任何的起始标签都必须有一个结束标签 <tagname></tagname>
2.可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签,这种语法是在大于符号之前紧跟一个斜线(/)
3.标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签
4.所有特性都必须有值
5.所有的特性都必须在值的周围加上双引号
注意:最外层有且只有一个标签,这个标签称为根标签
使用:1.配置文件 2.常规的数据交换
与json的区别:xml比json早诞生;json的数据比xml小
xml模块的处理:使用到的模块:ElementTree表示整个文件的元素树,Element表示一个节点
属性:text开始标签和结束标签中间的文本 attrib所有的属性,字典类型 tag标签的名字
方法:get获取某个属性的值
1.解析xml 查找标签 find在子标签中匹配第一个 findall在子标签中匹配所有标签 iter(tagname)
2.生成xml 用ElementTree parse()解析一个文件 getroot()获取根标签 write()写入文件
3.修改xml set一个属性 remove一个标签 append一个标签
三、configparser模块
定义:配置文件解析模块 配置文件:用于提供程序运行所需要的一些信息的文件
用途:方便用户修改
格式:section分区 option选项 一个文件可以有多个section,一个section可以有多个选项
核心功能:sections获取所有分区 options获取所有选项 get获取一个值
注意:大小写不敏感
四、hashlib模块
定义:是一个算法,用于将任意长度的数据,压缩映射到一段固定长度的字符
特点:1.输入的数据不同,得到的hash值有可能相同
2.不能通过hash值来得到输入的值
3.如果算法相同,无论输入的数据长度是多少,得到的hash值长度都是一样的
用途:用于加密和文件的检验:md5算法就是一种hash算法,也可以用加盐来提升安全性 加盐:把加密前的数据做一些改的,如顺序倒过来,增加没用的字符