python数据持久存储 pickle模块的基本使用方法解析


Posted in Python onAugust 30, 2019

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 相关文章推荐
Python操作SQLite简明教程
Jul 10 Python
Python中replace方法实例分析
Aug 20 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
开始着手第一个Django项目
Jul 15 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
Python实现简单网页图片抓取完整代码实例
Dec 15 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
python实现ROA算子边缘检测算法
Apr 05 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
python 命令行传入参数实现解析
Aug 30 #Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 #Python
python在OpenCV里实现投影变换效果
Aug 30 #Python
python 模拟贷款卡号生成规则过程解析
Aug 30 #Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 #Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 #Python
python获取Linux发行版名称
Aug 30 #Python
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python进程间通信用法实例
2015/06/04 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
利用python生成照片墙的示例代码
2020/04/09 Python
增大python字体的方法步骤
2020/07/05 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
大学运动会入场词
2014/02/22 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
九年级语文教学反思
2016/03/03 职场文书
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python