学习日记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)

 hmac

import hmac
h = hmac.new("121212".encode("utf-8"))
h.update("abcd".encode("utf-8"))
print(h.hexdigest())
原文地址:https://www.cnblogs.com/jianhaozhou/p/9469689.html