zoukankan      html  css  js  c++  java
  • day15-2

    一:json&pickle 模块

    json 用于字符串和python数据类型进行转换。因为python中的数据类型不能写入文件,所以需要转换为字符串或者bytes存入文件中

    pickle  用于python特有的数据类型和python的数据类型进行转换

    json 提供四个功能,dumps,dump,loads,load

    pickle.......               dumps,dump,loads,load

    见前面笔记

    二:shelve模块是一个简单的k,v 将内存数据持久化的一个模块,可以持久化任何pickle 可支持的python 数据类型

    import shelve
    import datetime
    d = shelve.open('shelve_test1')
    # time = datetime.datetime.now()
    # person = {'name':'ri','sex':'man'}
    # data = ['mon','sat','sun']
    #
    # d['time'] = time
    # d['person'] = person
    # d['data'] = data
    # d.close()
    # 将信息存入文件,生成三个文件 shelve_test1后缀分别为.bak .dat  .dir
    print(d.get('time'))
    print(d.get('person'))
    print(d.get('data'))
    d.close()

    三:xml模块

     xml模块是实现不同语言或者程序之间进行数据交换的协议,和json类似,但json使用起来更加方便简单。在现在很多传统公司仍然使用xml较多

    xml 通过 <>  <> 节点来区别数据结构

    xml文件

     1 <?xml version="1.0"?>
     2 <softCompany>
     3     <company>MicroSoft</company>
     4     <name>yang</name>
     5     <age>99</age>
     6     <company>google</company>
     7     <sex>
     8         <p></p>
     9         <m></m>
    10     </sex>
    11     <company>Apple</company>
    12     <company>百度</company>
    13 </softCompany>

    xml模块读操作

     1 # python处理xml
     2 import xml.etree.ElementTree as ETX
     3 
     4 tree = ETX.parse('xmltest.xml')
     5 root = tree.getroot()
     6 print(root)      # 返回地址
     7 print(root.tag)  # 打印标签
     8 
     9 # <Element 'softCompany' at 0x0000000000B57188>
    10 # softCompany
    11 
    12 # 遍历xml文档
    13 for child in root:
    14     print(child.tag,child.text,child.attrib,'sss')
    15     for node in child:
    16         print(node.tag,node.attrib,node.text)
    17 # 只遍历company节点
    18 print('stop'.center(50,'-'))
    19 for node in root.iter('company'):
    20     print(node.tag,node.attrib)
    21     
    22 # <Element 'softCompany' at 0x0000000001167188>
    23 # softCompany
    24 # company MicroSoft {} sss
    25 # name yang {} sss
    26 # age 99 {} sss
    27 # company google {} sss
    28 # sex 
    29 #          {} sss
    30 # p {} 男
    31 # m {} 女
    32 # company Apple {} sss
    33 # company 百度 {} sss
    34 # -----------------------stop-----------------------
    35 # company {}
    36 # company {}
    37 # company {}
    38 # company {}

    xml写操作

    import xml.etree.ElementTree as ET
     
    tree = ET.parse("xmltest.xml")
    root = tree.getroot()
     
    #修改
    for node in root.iter('year'):
        new_year = int(node.text) + 1
        node.text = str(new_year)
        node.set("updated","yes")
     
    tree.write("xmltest.xml")
     
     
    #删除node
    for country in root.findall('country'):
       rank = int(country.find('rank').text)
       if rank > 50:
         root.remove(country)
     
    tree.write('output.xml')

    创建

    #修改和删除xml内容
    import xml.etree.ElementTree as ET
    
    new_xml = ET.Element("namelist")
    name = ET.SubElement(new_xml, "name", attrib={"enrolled": "yes"})
    age = ET.SubElement(name, "age", attrib={"checked": "no"})
    sex = ET.SubElement(name, "sex")
    sex.text = ''
    name2 = ET.SubElement(new_xml, "name", attrib={"enrolled": "no"})
    age = ET.SubElement(name2, "age")
    age.text = '19'
    
    et = ET.ElementTree(new_xml)  # 生成文档对象
    et.write("test.xml", encoding="utf-8", xml_declaration=True)
    
    ET.dump(new_xml)  # 打印生成的格式
    View Code
  • 相关阅读:
    extgcd 扩展欧几里得算法模板
    51nod 1073约瑟夫环
    UVA 11806 Cheerleaders (容斥原理
    HDU 1863 畅通工程 (最小生成树
    并查集模板
    51NOD 1072 威佐夫游戏
    Java基于JAX-RD开发Restful接口
    tomcat的webapps下放置多个项目时会出现很多exception
    带滚动条的表格
    禁止apache显示目录索引的常见方法
  • 原文地址:https://www.cnblogs.com/yfjly/p/9813857.html
Copyright © 2011-2022 走看看