码迷,mamicode.com
首页 > 其他好文 > 详细

学习日记0813常用模块configparser,shelve,hashlib,xml

时间:2018-08-13 18:43:00      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:序列化   出现   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!