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 相关文章推荐
TensorFlow如何实现反向传播
Feb 06 Python
详解Python中where()函数的用法
Mar 27 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
May 24 Python
Python读取xlsx文件的实现方法
Jul 04 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
python 默认参数相关知识详解
Sep 18 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
pandas实现将日期转换成timestamp
Dec 07 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
Python实现把类当做字典来访问
Dec 16 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 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
全面解析PHP面向对象的三大特征
2017/06/10 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
vuex 的简单使用
2018/03/22 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
使用Python构造hive insert语句说明
2020/06/06 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
C#面试问题
2016/07/29 面试题
ktv周年庆活动方案
2014/08/18 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
民事调解书范文
2015/05/20 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
什么是css原子化,有什么用?
2022/04/24 HTML / CSS