zoukankan      html  css  js  c++  java
  • Python day19 模块介绍3(sys,json,pickle,shelve,xml)

    1.sys模块

    import sys
    
    sys.path()#打印系统path
    sys.version()#解释程序版本信息
    sys.platform()#系统平台
    
    sys.exit(0)#退出程序
    command=sys.argv[1]#从程序外部获取参数
    sys.stdout.write('#')#与print相同,区别是刷进缓存
    # 例子
    import time
    for i in range(10):
        sys.stdout.write('#')
        time.sleep(1)
        sys.stdout.flush() #把缓存刷进显示区

    2.json模块

    dic="{'name': 'alex'}"
    f=open("hello",'w')
    f.write(dic)
    f.close()
    f_read=open('hello','r')
    c=f_read.read()
    print(c)
    print(eval(c))#eval,重新运算求出参数的内容
    
    
    import json
    dic={'name':'littlepage'}
    doc=json.dumps(dic)#引号全部变成双引号,然后变成字符串
    print(doc)
    print(type(doc))
    f=open('hellod','w')
    f.write(doc)
    f.close()
    
    f_read=open('hellod','r')
    data=json.loads(f_read.read())#json来把字符串变成字典
    print(type(data))
    f_read.close()
    
    # 简写
    f=open('helloddd','w')
    dic={'name':'littlepage'}
    doc=json.dump(dic,f)

    3.pickle模块

    import pickle#比json序列的类型更多
    dic={'name':'littlepage','age':20,'gender':'male'}
    j=pickle.dumps(dic)#转换成字节
    print(type(j))
    f=open('hello','wb')
    pickle.dump(dic,f)
    f.close()
    f=open('hello','rb')
    print(pickle.loads(f.read()))
    
    import pickle#比json序列的类型更多
    dic={'name':'littlepage','age':20,'gender':'male'}
    j=pickle.dumps(dic)#转换成字节
    print(type(j))
    f=open('hello','wb')
    pickle.dump(dic,f)
    f.close()
    f=open('hello','rb')
    print(pickle.loads(f.read()))

    4.shelve

    import  shelve#操作简单,但是不常用
    f=shelve.open(r'she')#将字典放入文本,f相当于一个字典,更加方便,文本存储的是一个键和范围
    f['22']={"name":'ss'}
    f['33']='sss'
    f.close()
    f=shelve.open(r'she')
    print(f.get('22')['name'])#可以进行获取
    print(f.get('33'))
    f.close()
    
    
    import xml.etree.cElementTree as ET  #xml模块,java语言不可替代,python逐渐在用json替代,但目前还在大量使用
    
    tree=ET.parse("xml_lesson")#解析xml,xml是树形结构
    root=tree.getroot()#获取根节点
    print(root.tag)#打印根标签

    5.xml

    #遍历xml文档
    for i in root:
        for j in i:
            print(j.tag,j.attrib)#tag标签,attribute属性
            print(j.text)#
    
    #只遍历year节点
    for node in root.iter('year'):
        print(node.tag,node.text)
    
    #修改
    for node in root.iter('year'):
        new_year=int(node.text)+1
        node.text=str(new_year)#设置文本内容
        node.set("updated","yes")#设置属性,属性值
    
    tree.write("xmltt.xml")
    
    #删除
    for country in root.findall('country'):
        rank=int(country.find('rank'.text))
  • 相关阅读:
    女程序员这么少是因为怕秃头?如果你这样想,那就错了...
    使用简单的c#示例的坚实的架构原则
    第1部分设计模式FAQ(培训)
    为什么微软部分类和Java不?
    现实世界四部分类和部分方法的使用
    回到基础:n层ASP的异常管理设计指南。网络应用
    学习c#(第9天):理解c#中的事件(一种见解)
    EventBroker:同步和异步通知组件,松散耦合的事件处理
    潜水在OOP(第一天):多态和继承(早期绑定/编译时多态)
    学习c#(第8天):c#中的索引器(一种实用方法)
  • 原文地址:https://www.cnblogs.com/littlepage/p/9413492.html
Copyright © 2011-2022 走看看