文档章节

python数据持久存储:pickle

Faye_Cai
 Faye_Cai
发布于 2016/05/11 21:31
字数 420
阅读 8
收藏 0

转自 http://www.cnblogs.com/pzxbc/archive/2012/03/18/2404715.html

 

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()

复制代码

 

本文转载自:http://www.cnblogs.com/pzxbc/archive/2012/03/18/2404715.html

共有 人打赏支持
下一篇: lambda
Faye_Cai
粉丝 0
博文 28
码字总数 5590
作品 0
海淀
高级程序员
私信 提问
Python对象持久化学习整理

随着项目的深入,python对象持久化问题也随之而来。而在这之前,对于python对象持久化还停留在pickle时代,而这已无法满足当前项目发展的需要了,于是只好借助google疯狂的学习了一把,同时也...

索隆
2012/05/24
0
0
Python pickle的使用

pickle简介 pickle模块是对Python对象结构进行二进制序列化和反序列化的协议实现,就是把Python数据变成流的形式。 实例 参考资料 用pickle保存python程序中间变量 Python数据存储:pickle模...

致Great
07/05
0
0
简单比较Python的数据持久化操作

转自http://smartzxy.iteye.com/blog/680431 简单比较Python的数据持久化操作(一) 最近喜欢上了Python,喜欢它的简洁高效,喜欢它的“无所不能”。 Python的数据持久化操作主要是六类:普通...

alazyer
2014/05/28
0
0
《Head First Python》笔记 第四章 持久存储

感觉比Java简单许多啊... 持久存储 Persistent:Saving data to file 将基于内存的数据存储到磁盘上 对于文件的处理,一般是打开文件,获取文件内容,进行处理。处理结果可以在屏幕上显示,也...

豆仔
2013/04/05
0
1
python --- json模块和pickle模块详解

  json:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式(用于数据序列化和反序列化)。(适用于多种编程语言,可以与其他编程语言做数据交换)   pickle:...

码农47
2017/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

混合模型---logistic模型的混合

专家混合

中国龙-扬科
7分钟前
1
0
自定义参数校验注解 (实现ConstraintValidator方法)

Hibernate Validator常用注解(图网上找的) 2.自定义校验器 a.注解类 @Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})@Retention(RUNTIME)@Documented@Constraint(validatedB......

INSISTQIAO
10分钟前
1
0
Integer 实现

Integer 封装类型,参数传递传的是值,不是引用 内带缓存,-128 到127 -128 到127 直接数值 IntegerCache 如果不在这个范围,才会new Integer () public static Integer valueOf(int ...

Java搬砖工程师
11分钟前
1
0
数字IT基础-数据采集总线

数字化运营基础 在如今“双十一”不再是线上活动的代名词,而逐步变为一场线上线下同时进行的消费者盛宴。销售、运营、物流、生产商等都在开足马力在各大渠道备战,据统计: 消费者在期间被平...

阿里云官方博客
18分钟前
0
0
三次握手四次挥手

背景 和女朋友异地恋,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题: 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,...

瑞查德-Jack
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部