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['']={"name":'ss'}
f['']='sss'
f.close()
f=shelve.open(r'she')
print(f.get('')['name'])#可以进行获取
print(f.get(''))
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))
Python day19 模块介绍3(sys,json,pickle,shelve,xml)的更多相关文章
- 学到了林海峰,武沛齐讲的Day22-完 os sys json pickle shelve XML re
__ file__ ===== 文件路径 os.path.dirname( 路径 )=======到上一层目录 os sys
- 模块 - json/pickle/shelve/xml/configparser
序列化: 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 为什么要序列化: 有种办法可以直接把内存数据(eg:10个列表,3 ...
- python 序列化及其相关模块(json,pickle,shelve,xml)详解
什么是序列化对象? 我们把对象(变量)从内存中编程可存储或传输的过程称之为序列化,在python中称为pickle,其他语言称之为serialization ,marshalling ,flatter ...
- python序列化及其相关模块(json,pickle,shelve,xml)详解
什么是序列化对象? 我们把对象(变量)从内存中编程可存储或传输的过程称之为序列化,在python中称为pickle,其他语言称之为serialization ,marshalling ,flatter ...
- Python学习笔记——基础篇【第六周】——json & pickle & shelve & xml处理模块
json & pickle 模块(序列化) json和pickle都是序列化内存数据到文件 json和pickle的区别是: json是所有语言通用的,但是只能序列化最基本的数据类型(字符串. ...
- Python全栈开发记录_第八篇(模块收尾工作 json & pickle & shelve & xml)
由于上一篇篇幅较大,留下的这一点内容就想在这里说一下,顺便有个小练习给大家一起玩玩,首先来学习json 和 pickle. 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过, ...
- python笔记-7(shutil/json/pickle/shelve/xml/configparser/hashlib模块)
一.shutil模块--高级的文件.文件夹.压缩包处理模块 1.通过句柄复制内容 shutil.copyfileobj(f1,f2)对文件的复制(通过句柄fdst/fsrc复制文件内容) 源码: Le ...
- python模块--json \ pickle \ shelve \ XML模块
一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...
- 模块(序列化(json&pickle)+XML+requests)
一.序列化模块 Python中用于序列化的两个模块: json 跨平台跨语言的数据传输格式,用于[字符串]和 [python基本数据类型] 间进行转换 pickle python内置的数据 ...
随机推荐
- CentOS系统下的数据盘挂载
此教程适用系统:Linux(CentOS,Debian,Ubuntu,Fedora) 通常新开通的Linux云服务器数据盘都未做分区和格式化.在进行数据盘挂载之前我们要先进行分区以及格式化操作.注意, ...
- Summary: Lowest Common Ancestor in a Binary Tree & Shortest Path In a Binary Tree
转自:Pavel's Blog Now let's say we want to find the LCA for nodes 4 and 9, we will need to traverse th ...
- HDU 1700 Points on Cycle (几何 向量旋转)
http://acm.hdu.edu.cn/showproblem.php?pid=1700 题目大意: 二维平面,一个圆的圆心在原点上.给定圆上的一点A,求另外两点B,C,B.C在圆上,并且三角形A ...
- linux两种类型服务管理
linux服务分成两个大类 一.rpm包安装 ---------独立的服务 和 基于xinetd服务 二.源代码安装 rpm包安装的服务,查看命令是 chkconfig --list rpm安装 ...
- Sizzle源码分析 (一)
Sizzle 源码分析 (一) 2.1 稳定 版本 Sizzle 选择器引擎博大精深,下面开始阅读它的源代码,并从中做出标记 .先从入口开始,之后慢慢切入 . 入口函数 Sizzle () 源码 19 ...
- centos6更改密码
创建新用户 创建一个用户名为:zhangbiao [root@localhost ~]# adduser zhangbiao 为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略: [r ...
- 【转】Redis之发布 订阅模式
本例包括 jedis_demo:入口类 jedis_control:jedis控制器(jedis的连接池) jedis_pub_sub_listener:订阅的监听器 singleton_agent: ...
- 20145221高其_PC平台逆向破解_advanced
20145221高其_PC平台逆向破解_advanced 实践目录 shellcode注入 Return-to-libc 攻击实验 shellcode注入 概述 Shellcode实际是一段代码(也可 ...
- CEF之CefSettings设置locale
参考:https://blog.csdn.net/xiezhongyuan07/article/details/84402083 在开发过程遇到一个问题,CEF加载一个静态页面,然后在静态页面上有一个 ...
- linux下设置软件使用socks5代理
1.为wget使用代理,可以直接修改/etc/wgetrc,也可以在主文件夹下新建.wgetrc,并编辑相应内容,本文采用后者. 直接往~/.wgetrc(自行创建此文件)添加如下内容: https_ ...