第三十四节,pickle数据类型转换二进制字节码模块
在使用pickle模块时需要先 import pickle 引入模块
pickle.dumps()模块函数
功能:将python各种类型的数据转换成计算机识别的二进制字节码【有参】
使用方法:pickle.dumps(要转换的数据类型变量)
格式如:pickle.dumps(a)
注意:计算机只能字节码,不能识别python的各种数据类型如:列表,元祖,字典等,要想在计算机保存这些python数据类型,就需要将这些数据类型转换成二进制字节码来保存
#!/usr/bin/env python
# -*- coding:utf8 -*-
import pickle
yhxxi = { #创建一个嵌套字典
1:{
"yonghu":"liguixiou",
"mima":"",
"youjian":"729088188@qq.com",
"zichan":700,
},
2:{
"yonghu":"liguixiou2",
"mima":"",
"youjian":"7290881882@qq.com",
"zichan":7002,
}
}
a = pickle.dumps(yhxxi) #将字典转换成二进制字节码
print(a) #打印出二进制字节码
#输出
# b'\x80\x03}q\x00(K\x01}q\x01(X\x04\x00\x00\x00mimaq\x02X\x05\x00\x00\x0012345q\x03X\x07\x00\x00\x00youjianq\x04X\x10\x00\x00\x00729088188@qq.comq\x05X\x06\x00\x00\x00zichanq\x06M\xbc\x02X\x06\x00\x00\x00yonghuq\x07X\t\x00\x00\x00liguixiouq\x08uK\x02}q\t(h\x02X\x06\x00\x00\x00123452q\nh\x04X\x11\x00\x00\x007290881882@qq.comq\x0bh\x06MZ\x1bh\x07X\n\x00\x00\x00liguixiou2q\x0cuu.'
pickle.loads()模块函数
功能:将二进制字节码还原成它的python数据类型【有参】
使用方法:pickle.loads(需要还原的二进制字节码变量)
格式如:pickle.loads(b)
#!/usr/bin/env python
# -*- coding:gbk -*-
import pickle
a = ["你好", "我好", "他好"] #创建一个列表
b = pickle.dumps(a) #将列表转换成二进制字节码
print(b) #打印出转换的二进制字节码 c = pickle.loads(b) #将二进制字节码还原它的数据类型
print(c) #打印出还原的数据类型
#输出
# b'\x80\x03]q\x00(X\x06\x00\x00\x00\xe4\xbd\xa0\xe5\xa5\xbdq\x01X\x06\x00\x00\x00\xe6\x88\x91\xe5\xa5\xbdq\x02X\x06\x00\x00\x00\xe4\xbb\x96\xe5\xa5\xbdq\x03e.'
# ['你好', '我好', '他好']
将一个字典转换成二进制字节码,写入本地文件,在从本地文件读出二进制字节码,还原成字典,修改字典里的某些值后,将字典转换成二进制字节码,在重新写入本地文件
#!/usr/bin/env python
# -*- coding:utf8 -*-
import pickle
"""在一个本地文件里以二进制字节码方式保存会员信息"""
yhxxi = { #创建一个嵌套字典
1:{
"yonghu":"liguixiou",
"mima":"",
"youjian":"729088188@qq.com",
"zichan":700,
},
2:{
"yonghu":"liguixiou2",
"mima":"",
"youjian":"7290881882@qq.com",
"zichan":7002,
}
}
f = open("yh.txt", "wb") #打开yh.txt文件写入模式b以字节类型打开
f.write(pickle.dumps(yhxxi)) #将yhxxi字典通过pickle.dumps()模块函数转换成二进制字节码,写入yh.txt文件中
print(pickle.dumps(yhxxi)) #打印出字典转换成的二进制字节码
f.close() #关闭打开的文件 """在一个本地文件里读取里面的二进制字节码,还原它的数据类型"""
f2 = open("yh.txt", "rb") #打开yh.txt文件读模式b以字节类型打开
fa = f2.read() #读出文件里的内容
fa2 = pickle.loads(fa) #将文件里读出的二进制字节码还原它的数据类型
f2.close() #关闭打开的文件
print(fa2) #打印出还原的数据类型 """将还原的数据类型,修改后,转换成二进制字节码再写入文件保存"""
fa2[2]["zichan"] = fa2[2]["zichan"] - 500 #将字典里的字典,键为2里的键为zichan的值减500
fa2[2]["yonghu"] = "liguixiou3" #将字典里的字典,键为2里的键为yonghu的值改为liguixiou3
print(fa2) #此时的fa2字典里的数据已经修改
f2 = open("yh.txt", "wb") #打开yh.txt文件写入模式b以字节类型打开
xieru2 = pickle.dumps(fa2) #将修改后的字典转换成二进制字节码
f2.write(pickle.dumps(fa2)) #将修改后的字典转换成二进制字节码,然后再写入yh.txt文件
f2.close() ##关闭打开的文件
print(xieru2) #打印将修改后的字典 #最后输出
# b'\x80\x03}q\x00(K\x01}q\x01(X\x07\x00\x00\x00youjianq\x02X\x10\x00\x00\x00729088188@qq.comq\x03X\x06\x00\x00\x00yonghuq\x04X\t\x00\x00\x00liguixiouq\x05X\x06\x00\x00\x00zichanq\x06M\xbc\x02X\x04\x00\x00\x00mimaq\x07X\x05\x00\x00\x0012345q\x08uK\x02}q\t(h\x02X\x11\x00\x00\x007290881882@qq.comq\nh\x04X\n\x00\x00\x00liguixiou2q\x0bh\x06MZ\x1bh\x07X\x06\x00\x00\x00123452q\x0cuu.'
# {1: {'youjian': '729088188@qq.com', 'yonghu': 'liguixiou', 'zichan': 700, 'mima': '12345'}, 2: {'youjian': '7290881882@qq.com', 'yonghu': 'liguixiou2', 'zichan': 7002, 'mima': '123452'}}
# {1: {'youjian': '729088188@qq.com', 'yonghu': 'liguixiou', 'zichan': 700, 'mima': '12345'}, 2: {'youjian': '7290881882@qq.com', 'yonghu': 'liguixiou3', 'zichan': 6502, 'mima': '123452'}}
# b'\x80\x03}q\x00(K\x01}q\x01(X\x07\x00\x00\x00youjianq\x02X\x10\x00\x00\x00729088188@qq.comq\x03X\x06\x00\x00\x00yonghuq\x04X\t\x00\x00\x00liguixiouq\x05X\x06\x00\x00\x00zichanq\x06M\xbc\x02X\x04\x00\x00\x00mimaq\x07X\x05\x00\x00\x0012345q\x08uK\x02}q\t(h\x02X\x11\x00\x00\x007290881882@qq.comq\nh\x04X\n\x00\x00\x00liguixiou3q\x0bh\x06Mf\x19h\x07X\x06\x00\x00\x00123452q\x0cuu.'
pickle.dump()
功能:将python数据类型以二进制字节码方式直接写入文件,【有参】
使用方法:pickle.dump(要写入文件的类型数据变量, 打开文件变量)【有参】
格式如:pickle.dump(a,c)
注意:pickle.dump()写入文件可以直接写入,不需要write()函数即可写入
#!/usr/bin/env python
# -*- coding:utf8 -*-
import pickle
a = ["你好", "我好", "他好"] #创建一个列表
c = open("yh.txt", "wb") #写入模式打开一个文件以二进制字节码模式
pickle.dump(a,c) #将python数据类型以二进制字节码方式直接写入文件
c.close() #关闭文件
pickle.load()
功能:将文件里的二进制字节码直接读出还原它的python数据类型【有参】
使用方法:pickle.load(打开文件的变量)
格式如:pickle.load(c1)
注意:pickle.load()读出文件可以直接读出,不需要read()函数即可读出
#!/usr/bin/env python
# -*- coding:utf8 -*-
import pickle
c1 = open("yh.txt", "rb") #以读二进制模式打开文件
fa = pickle.load(c1) #将文件里的二进制字节码直接读出还原它的python数据类型
c1.close() #关闭文件
print(fa) #打印出还原的Python数据类型
#输出
# ['你好', '我好', '他好']
第三十四节,pickle数据类型转换二进制字节码模块的更多相关文章
- 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息
第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...
- 风炫安全web安全学习第三十四节课 文件包含漏洞防御
风炫安全web安全学习第三十四节课 文件包含漏洞防御 文件包含防御 在功能设计上不要把文件包含的对应文件放到前台去操作 过滤各种../,https://, http:// 配置php.ini文件 al ...
- 第三十四节,目标检测之谷歌Object Detection API源码解析
我们在第三十二节,使用谷歌Object Detection API进行目标检测.训练新的模型(使用VOC 2012数据集)那一节我们介绍了如何使用谷歌Object Detection API进行目标检 ...
- [ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel
继上次使用js前端导出excel之后,还有一个主要大家比较关注的是后台实现导出excel,因为本人开发使用的java所以这里使用apache的开源项目poi进行后台excel的导出. 本文目录 本文目 ...
- 第二百三十四节,Bootstrap表单和图片
Bootstrap表单和图片 学习要点: 1.表单 2.图片 本节课我们主要学习一下 Bootstrap 表单和图片功能,通过内置的 CSS 定义,显示各 种丰富的效果. 一.表单 Bootstrap ...
- 第一百三十四节,JavaScript,封装库--遮罩锁屏
JavaScript,封装库--遮罩锁屏 封装库新增1个方法 /** zhe_zhao_suo_ping()方法,将一个区块元素设置成遮罩锁屏区块 * 注意:一般需要在css文件将元素设置成隐藏 ** ...
- 第三百五十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—数据收集(Stats Collection)
第三百五十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—数据收集(Stats Collection) Scrapy提供了方便的收集数据的机制.数据以key/value方式存储,值大多是计数 ...
- 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册
第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册 基于类的路由映射 from django.conf.urls import url, incl ...
- 第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理
第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理 1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字 ...
随机推荐
- pychon - selenium2Libray源码简介
I. Introduction Selenium2Library是robot framework中主流的测试网页功能的库, 它的本质是对webdriver的二次封装, 以适应robot框架. 百度上一 ...
- kafka_2.11-0.10.0.0安装步骤
Kafka安装配置 我们使用5台机器搭建Kafka集群: 1. cluster-1-namenode-1-001 172.16.0.147 2. cluster-1-datanode-1- ...
- js获取json的value
getJson('age'); function getJson(key){ var jsonObj={"name":"cxr","age" ...
- tablespace
CREATE [UNDO] TABLESPACE tablespace_name [DATAFILE datefile_spec1 [,datefile_spec2] ...... [{MININUM ...
- 原生js怎么为动态生成的标签添加各种事件
这几天用zepto.js写了不少事件,突然想到一个问题,那就是原生的js如何给动态生成的标签添加事件?因为这些标签都是后来通过ajax或者运行其他点击事件生成的,那么如果之前给他们写事件他们这个dom ...
- Latex问题收集
1. Latex中的空格 两个quad空格 a \qquad b 两个m的宽度 quad空格 a \quad b 一个m的宽度 大空格 a\ b 1/3m宽度 中等空格 a\;b 2/7m宽度 小空格 ...
- 成都IT公司面经及公司评价
从2015年年底到2016年初找了几个月工作,面了大大小小若干公司,有很不错的公司,也有很多坑公司,与君共勉. 1.科大讯飞 地址:成都分公司位于天府软件园E区,占一层楼.面积挺大.公司装修风格很舒服 ...
- openstack私有云布署实践【14.2 登录页dashboard-controller(办公网环境)】
这一小节基本配置相同,但留意以下紫色部份的配置,当初为了管理方便,我们让办公网openstack的dashboard的登录桥接了科兴的dashboard,由此统一dashboard界面的登录地址 ...
- scp免密码传送文件
一.单向 ssh-keygen -t rsa 单向无密码访问远程服务器操作比较简单,比如服务器A需要无密码访问服务器B(A–>B),那么只需要在服务器A生成密钥对,将生成的公钥上传到服务器B的相 ...
- hitTest和pointInside和CGRectContainsPoint
很多app中TabBar中间会有个凸起超出部分,为了点击超出父视图但是还想让按钮响应 //重写hitTest方法,去监听发布按钮的点击,目的是为了让凸出的部分点击也有反应- (UIView *)hit ...