學習日記0813常用模塊configparser,shelve,hashlib,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