configparser模块
什么是configparser模块
用于解析配置文件 后缀为 ini或者cfg
怎么用configparser模块
查看配置文件中的内容
1 import configparser2 cfg = configparser.ConferParser()3 cfg.read('文件路径',encoding='utf-8')4 print(cfg.sections())5 print(cfg.options('section名'))
修改配置文件中的内容
import configparser cfg = configparser.ConferParser() cfg.read('文件路径',encoding='utf-8') cfg.set('sections','options','修改的内容') cfg.write(open('文件路径','w',encoding='utf-8'))
shelve模块
什么是shelve模块
shelve也是系列化的一种,他内置就是picker模块
它的存储成的格式为字典形式
怎么使用shelve模块
序列化
import shelve sh = shelve.open('文件路径') sh['name'] = 'beard' sh.close()
反序列化
import shelve sh = shelve.open('文件路径') print(sh.get('name')) sh.close
hashlib模块
什么是hash模块
hash是一种加密的方式,它会将任意长度的数据加密成一个固定长度的数据
常用的hash加密方式是MD5
hash的特点:
1.输入数据不同,得到的hash值有可能相同 2.不能通过hash值来得到输入的值 3.如果算法相同,无论输入的数据长度是多少,得到的hash值长度相同在python中使用hashlib加密数据
import hashlib md = hashlib.md5() md.update('加密的数据') sj = md.hexdigest() print(sj)
xml模块
xml全称:可扩展标记语言
xml与json数据相似,都是用于序列化数据,和在不同的平台间传递数据的
该语言的语法特点是
1 xml使用标签的形式,每一个标签都必须成对出现
<123></123>
<123/>简化的写法
2 标签必须顺序的嵌套
<123>
<456>
</456>
</123>
3 特征必须都有值
<123 name="456"/>
4 必须使用的是""
使用场景:
1 配置文件
2 不同平台间的数据交换
在python中使用xml的方式
ElmentTree 表示整个文件的元素树
Elment 表示一个节点 属性 1.text 开始标签和结束标签中间的文本 2.attrib 所有的属性 字典类型 3.tag 标签的名字 方法 get 获取某个属性的值 1.解析XML 查找标签 find 在子标签中获取名字匹配第一个 findall 在子标签中获取名字匹配的所有标签 iter(tagname) 在全文中查找[匹配的所有标签 返回一个迭代器 2.生成XML 用ElmentTree parse() 解析一个文件 getroot() 获取根标签 write() 写入到文件 3.修改xml set 一个属性 remove 一个标签 append 一个标签代码表示生成一个xml文件
import xml.etree.ElementTree as et root = et.Element('root') tl = et.ElementTree(root) persson = et.Element('persson') persson.attrib['name1'] = '属性一' persson.attrib['name2'] = '属性二' persson.text = '这是一个标签' root.append(persson) tl.write('文件路径',encoding='utf-8',xml_declaration=True)
查看xml中的内容:
import xml.etree.ElementTree as et tree = et.parser('文件路径') root = tree.getroot() for i in root: print(i.text,i.tag,i.attrib)
在xml中添加内容,建立新的xml文件,删除内容,修改内容:
import xml.etree.ElementTree as et# #先生成一个根标签# root = et.Element('根标签')# #再生成一个节点树# tl = et.ElementTree(root)# #再添加一个persson标签# persson = et.Element('persson标签')# #再设置persson标签的属性# persson.attrib['name1'] = '属性一'# persson.attrib['name2'] = '属性二'# #再设置persson的内容# persson.text = '标签的内容'# root.append(persson)# # 最后再写入文件# tl.write('lx.xml',encoding='utf-8',xml_declaration=True)# #xml_declaration是否生成文件头#将文件读入内存tree = et.parse('lx.xml')#获得根标签root =tree.getroot()# persson = root.find('persson标签2')# persson.text = str(persson.text+'123') #修改文件# root.remove(persson)#删除标签new_persson = et.Element('persson标签3')new_persson.attrib['age'] = '123'new_persson.text = '123'root.append(new_persson)tree.write('lx.xml',encoding='utf-8',xml_declaration=True)
hmac
import hmach = hmac.new("121212".encode("utf-8"))h.update("abcd".encode("utf-8"))print(h.hexdigest())