标签:序列化 出现 section ges 传递 生成xml 长度 传递数据 内存
configparser模块
什么是configparser模块
用于解析配置文件 后缀为 ini或者cfg
怎么用configparser模块
查看配置文件中的内容
1 import configparser 2 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)
学习日记0813常用模块configparser,shelve,hashlib,xml
标签:序列化 出现 section ges 传递 生成xml 长度 传递数据 内存
原文地址:https://www.cnblogs.com/jianhaozhou/p/9469689.html