zoukankan      html  css  js  c++  java
  • 学习日记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())
  • 相关阅读:
    Ext JS学习第三天 我们所熟悉的javascript(二)
    Ext JS学习第二天 我们所熟悉的javascript(一)
    Ext JS学习第十七天 事件机制event(二)
    Ext JS学习第十六天 事件机制event(一)
    Ext JS学习第十五天 Ext基础之 Ext.DomQuery
    Ext JS学习第十四天 Ext基础之 Ext.DomHelper
    Ext JS学习第十三天 Ext基础之 Ext.Element
    Ext JS学习第十天 Ext基础之 扩展原生的javascript对象(二)
    针对错误 “服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF” 的原因分析
    C# 使用HttpWebRequest通过PHP接口 上传文件
  • 原文地址:https://www.cnblogs.com/jianhaozhou/p/9469689.html
Copyright © 2011-2022 走看看