• 第十九天笔记


    什么是shelve模块     
      也是一种序列化方式
    使用方法
    1.opne
    2.读写
    3.close
    特点:使用方法比较简单 提供一个文件名字就可以开始读写
      读写的方法和字典一致
      你可以把它当成带有自动序列化功能的字典
    原理: 内部使用的就是pickle 所以 也存在跨平台性差的问题, 你自己存的只有你自己知道怎么取
    什么时候用:写一个单机程序时可以考虑
    运行时会出现三个txt文件
    configparser 是什么?
    配置文件解析模块
    什么是配置文件?
    用于提供程序运行所需要的一些信息的文件 后缀 ini cfg
    有什么用? 方便用户修改 例如超时时间
    配置文件内容格式
    只包括两种元素
    section 分区
    option 选项
    一个文件可以有多个section 一个section可以有多个选项
    核心功能
    1.sections 获取所有分区
    2.options 获取所有选项
    3.get 获取一个值 传入 section option
    注意:大小写不敏感
    配置文件
    得到配置文件对象 代码:cfg = configparser.ConfigParser()
    读取一个配置文件 代码:cfg.read("download.ini")
    修改最大速度为2048 代码:cfg.set("section1","maxspeed","2048")
    hashlib
    hash是什么?
    是一种算法
    用于将任意长度的数据,压缩映射到一段固定长度的字符 (提取特征)
    hash的特点:
    1.输入数据不同,得到的hash值有可能相同
    2.不能通过hash值来得到输入的值
    3.如果算法相同,无论输入的数据长度是多少,得到的hash值长度相同
    加密的方式有很多 常用的MD5就是一种hash算法
    常用的提升安全性的手段 就是加盐 就是把你加密前的数据做一些改动 例如 把顺序反过来
    破解MD5可以尝试撞库 原理: 有一个数据库 里面存放了常见的明文和密文的对应关系 ,
    所以我可以拿着一个密文取数据库中查找 有没有已经存在的明文 如果有撞库成功 能不能破解凭运气
    XML
    什么XML:全称 可扩展标记语言
    标记指的是代表某种含义的字符 XML<>
    为什么需要XML
    为能够在不同的平台间继续数据的交换
    为了使交换的数据能让对方看懂 就需要按照一定的语法规范来书写
    XML语法格式:
    一、任何的起始标签都必须有一个结束标签。
    <tagname></tagname>
    <tagname></tagname>
    <tagname/> 简化写法
    二、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<百度百科词条/>
    XML解析器会将其翻译成<百度百科词条></百度百科词条>
    三、标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如这是一串百度百科中的样例字符串。
    这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。
    关闭标签应该从内往外 一层一层关闭 顺序不能乱
    四、所有的特性都必须有值。
    特性指的是属性
    <person name="">
    </person>
    五、所有的特性都必须在值的周围加上双引号
    注意:最外层有且只有一个标签 这个标签称之为根标签
    第一行应该有文档声明 用于高速计算机怎么理解
    例如:<?xml version="1.0" encoding="utf-8"?>
    当标签嵌套的时候会出现层级关系 如果一个标签不被任何别的标签包裹 那他就是根标签(最外层)
    使用场景:
    1.配置文件
    2.常规的数据交换 例如从服务器获取一段新闻
    json的区别:
    作用是一样的 都是一种数据格式
    xmljson先诞生 json的数据比xml 目前json是主流
    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 一个标签
    创建根标签 root = et.Element("root")
    创建节点树 t1 = et.ElementTree(root)
    写入文件 t1.write("newXML.xml",encoding="utf-8",xml_declaration=True)
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  • 相关阅读:
    深入浅出C#结构体——封装以太网心跳包的结构为例
    视频在线率统计——基于驱动总线设备的领域驱动设计方法落地
    在net Core3.1上基于winform实现依赖注入实例
    类与结构体性能对比测试——以封装网络心跳包为例
    基于Modbus三种CRC16校验方法的性能对比
    Git在公司内部的使用规范
    基于abp框架的数据库种子数据初始化
    VUE中登录密码显示与隐藏的最简设计——基于iview
    abp框架运行——前后端分离(基于VUE)
    基于HTTPS的接口测试——nginx配置SSL
  • 原文地址:https://www.cnblogs.com/zhouhao123/p/9468232.html
Copyright © 2020-2023  润新知