json,pickle模块
        1. 什么是序列化
            序列化指的是将内存中的数据类型转换成一种中间格式,该格式可以用来存到硬盘中或者基于网络传输
        2. 为何要序列化
            1. 持久化(把某一时刻程序的运行状态永久保存下来)
            2. 基于网络传输,可以扩平台交互数据
        3. 如何序列化
            json:(t模式文本)rt,wt,at          写进硬盘 格式任意 读一定要满足json的格式

json.dump([1,2],open('a.txt','wt',encoding='utf-8',),ensure_ascii=False)默认为True


优点:兼容所有语言,可以扩平台交互数据
                缺点:不能支持所有的python数据类型
            pickle:(b模式二进制读写)rb,wb,ab


                优点:可以支持所有的python数据类型
                缺点:不能跨平台
           json.dumps(数据类型)  json.loads(json格式的字符串)
           json.dump(数据类型,文件对象)   json.load(文件对象)
shelve模块(pickle底层功能的封装)
 info={'name':'egon','age':18,'hobby':['piao','smoking','drinking']}
 存
 f=shelve.open(r'sheve.txt') 不用指定模式可读可写
 f['st']=info
 f.close()
 取
 f=shelve.open(r'sheve.txt')
 print(f['st']['name'])
 f.close()
 改
 f=shelve.open(r'sheve.txt',writeback=True) #改:全部重新写到硬盘
 f['st']['name']='alex'
 f.close()
xml模块(中间格式) 解析文件
 格式:
 <data>
  <country name="Liechtenstein">
   <rank updated="yes">2</rank>
   <year>2008</year>
   <gdppc>141100</gdppc>
   <neighbor name="Austria" direction="E"/>
   <neighbor name="Switzerland" direction="W"/>
  </country>
 </data>
   就像字典:date={Liechtenstein:{....}}
 
 import xml.etree.ElementTree as ET 
  tree = ET.parse("xmltest.xml") #整棵树(加载解析文件)
  root = tree.getroot()          #先拿树根(节点)例如root节点<peple age='18'>wd</people>   root.tag,.attrib,.text
  查
  root.iter('year')          #全文搜索
  root.find('country')       #当前的节点的下一层找(当前为根节点),只找一个
  root.findall('country')    #当前的节点的下一层找(当前为根节点),找所有
  
   举例res=root.find('country') #country节点 
    nh=res.find('year')   #从country节点开始找下层的year,没有返回None 
  改
   1.找到要改的
   2.改
   3.tree.write('a.xml',#encoding="utf-8",xml_declaration=True) #把整棵树wt覆盖写回
  增
   ele=ET.Element('egon')#增加节点
   ele.attrib={'nb':'yes'}#属性
   ele.text='非常帅'#属性
   
   节点.append(ele) #把节点添加进节点ele
    .remove(ele) #
    
  建整棵树
   先拿个节点作为根:ele=ET.Element('egon')
        tree=ET.ElementTree(ele)
   再创建其他子节点:
       a=ET.Element('egon1')    #a表示节点,egon1是节点的(a.tag)名字
       a.text=
       a.attrib=
  b=ET.subElement('父节点',‘子节点’,attrib= ,text=?)
       ele.append(a)
   最后保存
     tree.write('路径文件名')#可以指定编码 还有这个头文件申明就像codeing:utf-8一个道理
  图

(常用)xml-pickle-shevel-json模块的更多相关文章

  1. Python开发之序列化与反序列化:pickle、json模块使用详解

    1 引言 在日常开发中,所有的对象都是存储在内存当中,尤其是像python这样的坚持一切接对象的高级程序设计语言,一旦关机,在写在内存中的数据都将不复存在.另一方面,存储在内存够中的对象由于编程语言. ...

  2. Python序列化-pickle和json模块

    Python的“file-like object“就是一种鸭子类型.对真正的文件对象,它有一个read()方法,返回其内容.但是,许多对象,只要有read()方法,都被视为“file-like obj ...

  3. Python中的序列化以及pickle和json模块介绍

    Python中的序列化指的是在程序运行期间,变量都是在内存中保存着的,如果我们想保留一些运行中的变量值,就可以使用序列化操作把变量内容从内存保存到磁盘中,在Python中这个操作叫pickling,等 ...

  4. pickle和json模块

    json模块 json模块是实现序列化和反序列化的,主要用户不同程序之间的数据交换,首先来看一下: dumps()序列化 import json '''json模块是实现序列化和反序列话功能的''' ...

  5. pytho中pickle、json模块

    pickle & json 模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 json模块提供了四 ...

  6. Learning-Python【20】:Python常用模块(3)—— shelve、pickle、json、xml、configparser

    什么是序列化/反序列化? 序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输,反序列化就是硬盘中或者网络中传来的一种数据格式转换成内存中数据结构 为什么要有序列化/反序列化? 1 ...

  7. os常用模块,json,pickle,shelve模块,正则表达式(实现运算符分离),logging模块,配置模块,路径叠加,哈希算法

    一.os常用模块 显示当前工作目录 print(os.getcwd()) 返回上一层目录 os.chdir("..") 创建文件包 os.makedirs('python2/bin ...

  8. Python 常用模块(2) 序列化(pickle,shelve,json,configpaser)

    主要内容: 一. 序列化概述 二. pickle模块 三. shelve模块 四. json模块(重点!) 五. configpaser模块 一. 序列化概述1. 序列化: 将字典,列表等内容转换成一 ...

  9. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...

  10. 第九节:os、sys、json、pickle、shelve模块

    OS模块: os.getcwd()获取当前路径os.chdir()改变目录os.curdir返回当前目录os.pardir()父目录os.makedirs('a/b/c')创建多层目录os.remov ...

随机推荐

  1. HDU - 1272 小希的迷宫(并查集判断环)

    https://cn.vjudge.net/problem/HDU-1272 Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardo ...

  2. HDU 1023(卡特兰数 数学)

    题意是求一列连续升序的数经过一个栈之后能变成的不同顺序的数目. 开始时依然摸不着头脑,借鉴了别人的博客之后,才知道这是卡特兰数,卡特兰数的计算公式是:a( n )  =  ( ( 4*n-2 ) / ...

  3. npm与nrm

    npm npm是Node.js 平台的默认包(模块依赖)管理工具 Node Package Manager nrm 一个npm的源管理器(管理工具) 允许快速的在 npm 源间切换 两者关系 npm是 ...

  4. 对空间数据(Shape)重新排序

    打开ArcToolBox,数据管理工具->常规(General)->排序

  5. C# 获取当前路径方法整理

    https://www.cnblogs.com/tianma3798/p/6553863.html1. //获取包含清单的已加载文件的路径或 UNC 位置. public static string ...

  6. git 完全讲解 无废话,包含在myeclipse中使用,包括解决冲突

    Git 1. Git简介 1.1 git是什么 1.1.1概念 Git:git是一款开源的分布式的版本控制软件 Github:是一个基于git的面向开源及私有软件项目的托管平台 因仅支持git 作为唯 ...

  7. JS基础题

    1.三目运算符(三元条件语句)的使用方法? 条件表达式?true表达式:false表达式 2.JS数据中哪些属于引用类型? 数组.对象 引用类型变量,变量名所储存的不是变量值,而是变量所在的地址. 3 ...

  8. 关于mirai的一些研究

    关于mirai的一些研究 0x01.源码编译: 配置好对应的go开发环境,即可进行编译,生成了主要的文件 badbot为僵尸节点的可执行文件,cnc为主控端的可执行文件,其它一些为辅助工具. 如下图所 ...

  9. [C++]PAT乙级1002.写出这个数(20/20)

    /* 1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. ...

  10. Darknet windows移植(YOLO v2)

    Darknet windows移植 代码地址: https://github.com/makefile/darknet 编译要求: VS2013 update5 及其之后的版本(低版本对C++标准支持 ...