博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习日记0813常用模块configparser,shelve,hashlib,xml
阅读量:7197 次
发布时间:2019-06-29

本文共 3198 字,大约阅读时间需要 10 分钟。

configparser模块

  什么是configparser模块

    用于解析配置文件 后缀为 ini或者cfg

  怎么用configparser模块

    查看配置文件中的内容

1 import configparser2     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 hmach = hmac.new("121212".encode("utf-8"))h.update("abcd".encode("utf-8"))print(h.hexdigest())

 

转载于:https://www.cnblogs.com/jianhaozhou/p/9469689.html

你可能感兴趣的文章
JQ和Js获取span标签的内容
查看>>
8. java操作mongodb——查询数据
查看>>
NHProfiler使用方法
查看>>
《C和指针》读书笔记 第3章-数据
查看>>
ul li排版 左右对齐
查看>>
Java并发编程:Callable、Future和FutureTask
查看>>
CentOS卸载Apache方法
查看>>
“此文件来自其他计算机,可能被阻止以帮助保护该计算机” 教你win7解除阻止程序运行怎么操作...
查看>>
20170710总结
查看>>
distinct去掉重复记录
查看>>
大神都未必解决的了简单问题,关于文字左右两端对齐。
查看>>
DBUtils的增删改
查看>>
【BZOJ1475】方格取数 [最小割]
查看>>
数据结构实验9——串
查看>>
iOS - UITableView 编辑(cell的插入, 删除, 移动)
查看>>
log4j 日志分类级别配置
查看>>
40+SublimeText插件
查看>>
swift - 动画学习
查看>>
java 细说String
查看>>
单片机C语言探究--为什么变量最好要赋初值
查看>>