1. 程式人生 > >學習日記0813常用模塊configparser,shelve,hashlib,xml

學習日記0813常用模塊configparser,shelve,hashlib,xml

-s pen 代碼 順序 文件中 反序 ini 返回 添加

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