Python pickle模块用法实例


Posted in Python onApril 14, 2015

python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

基本接口:

pickle.dump(obj, file, [,protocol])

注解:将对象obj保存到文件file中去。

protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。

file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以'w'方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。

pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
file:类文件对象,有read()和readline()接口。

A Simple Code

#使用pickle模块将数据对象保存到文件  import pickle
data1 = {'a': [1, 2.0, 3, 4+6j], 'b': ('string', u'Unicode string'), 'c': None}
selfref_list = [1, 2, 3]

selfref_list.append(selfref_list)
output = open('data.pkl', 'wb') # Pickle dictionary using protocol 0. pickle.dump(data1, output) # Pickle the list using the highest protocol available. pickle.dump(selfref_list, output, -1)
output.close()

 
#使用pickle模块从文件中重构python对象  import pprint, pickle
pkl_file = open('data.pkl', 'rb')
data1 = pickle.load(pkl_file)

pprint.pprint(data1)
data2 = pickle.load(pkl_file)

pprint.pprint(data2)
pkl_file.close()
Python 相关文章推荐
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Python中pow()和math.pow()函数用法示例
Feb 11 Python
Python格式化输出字符串方法小结【%与format】
Oct 29 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
Python文件操作函数用法实例详解
Dec 24 Python
python中数据库like模糊查询方式
Mar 02 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
使用Python的PEAK来适配协议的教程
Apr 14 #Python
Python全局变量操作详解
Apr 14 #Python
Python and、or以及and-or语法总结
Apr 14 #Python
Python线程的两种编程方式
Apr 14 #Python
Python中的测试模块unittest和doctest的使用教程
Apr 14 #Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 #Python
对于Python编程中一些重用与缩减的建议
Apr 14 #Python
You might like
PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
js中的屏蔽的使用示例
2013/07/30 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
浅谈js的异步执行
2016/10/18 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
英国网上购买门:Direct Doors
2018/06/07 全球购物
SQL注入攻击的种类有哪些
2013/12/30 面试题
外贸学院会计专业应届生求职信
2013/11/14 职场文书
高级技校毕业生自荐信
2013/11/18 职场文书
销售目标责任书
2014/07/23 职场文书
行政文员岗位职责
2015/02/04 职场文书
行政诉讼答辩状
2015/05/21 职场文书
js中Object.create实例用法详解
2021/10/05 Javascript
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js