• 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))
  • 相关阅读:
    jquery的下拉选择框
    jquery动态导航三
    jquery--动态导航二
    jquery--动态导航
    jquery--图片轮番效果
    jquery方式的价格随数量增加、删除当前行与所有行
    解决sese9 安装时多个屏幕
    利用PowerCLI不重启系统更新VMware Tools
    VMware: Deploy multiple VM’s from template with PowerCLI
    vmware converter linux p2v lvm
  • 原文地址:https://www.cnblogs.com/littlepage/p/9413492.html
Copyright © 2020-2023  润新知