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))
原文地址:https://www.cnblogs.com/littlepage/p/9413492.html