pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别。要和其他语言交互,可以使用内置的json包
使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。
pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成读写独享操作,唯一需要的只是一个
合法的文件句柄。
pickle模块中的两个主要函数是dump()和load()。dump()函数接受一个文件句柄和一个数据对象作为参数,把数据对象以特定的格式保存
到给定的文件中。当我们使用load()函数从文件中取出已保存的对象时,pickle知道如何恢复这些对象到它们本来的格式。
dumps()函数执行和dump()
函数相同的序列化。取代接受流对象并将序列化后的数据保存到磁盘文件,这个函数简单的返回序列化的数据。
loads()函数执行和load()
函数一样的反序列化。取代接受一个流对象并去文件读取序列化后的数据,它接受包含序列化后的数据的str对象, 直接返回的对象。
cPickle是pickle得一个更快得C语言编译版本。
pickle和cPickle相当于java的序列化和反序列化操作
#! /usr/local/env python
# -*- coding=utf-8 -*-
if __name__ == "__main__":
import cPickle
#序列化到文件
obj = 123,"abcdedf",["ac",123],{"key":"value","key1":"value1"}
print obj
#输出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})
#r+ 读写权限 r+b 读写到二进制文件
f = open(r"d:\a.txt","r+")
cPickle.dump(obj,f)
f.close()
f = open(r"d:\a.txt")
print cPickle.load(f)
#输出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})
#序列化到内存(字符串格式保存),然后对象可以以任何方式处理如通过网络传输
obj1 = cPickle.dumps(obj)
print type(obj1)
#输出:<type 'str'>
print obj1
#输出:python专用的存储格式
obj2 = cPickle.loads(obj1)
print type(obj2)
#输出:<type 'tuple'>
print obj2
#输出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})
相关推荐
Python序列化的概念很简单...Python标准库提供pickle和cPickle模块。cPickle是用C编码的,在运行效率上比pickle要高,但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们不需要从这些类型中继承,推荐使用c
pickle(python3.x)和cPickle(python2.x的模块)相当于java的序列化和反序列化操作。 常采用下面的方式使用: import pickle pickle.dump(obj,f) pickle.dumps(obj,f) pickle.load(f) pickle.loads(f) 使用pickle模块...
python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....
* 序列化Python对象:pickle、cPickle模块 * 读写JSON数据:json模块 * 文件模式匹配:glob模块 章节5:Python科学计算基础:NumPy模块 * NumPy模块简介 * 数组基础 * 数组操作 * 数组广播机制 * 数组索引进阶 * ...
marshal、pickle、cPickle模块用于对象的序列化和反序列化。copy_reg、pprint、repr、base64、binhex、quopri、uu、binascii模块则提供了对数据进行编码和转换的功能。 文件格式处理涉及到xmllib、xml.parsers....
Python中可以使用 pickle 模块将对象转化为文件保存在磁盘上,在需要的时候再读取并还原。具体用法如下: pickle是Python库中常用的序列化工具,可以将内存对象以文本或二进制格式导出为字符串,或者写入文档。后续...
Python标准库是Python语言的一个重要组成部分,它包含了多个模块,每个模块都针对不同的功能提供了接口和工具,从而极大地方便了Python的使用和扩展。描述中提到本书对每个模块至少提供了一个例子来说明如何使用,整...
数据表示部分涉及了如何表示和处理各种数据类型,例如通过array、struct、xdrlib、marshal、pickle、cPickle、copy_reg、pprint、repr、base64、binhex、quopri、uu和binascii模块实现二进制数据与Python数据结构...
- pickle和cPickle模块:对象的序列化和反序列化。 第5章讲解文件格式处理,如: - xmllib模块:XML解析器。 - expat模块:一个XML解析库的接口。 - sgmllib模块:SGML解析器。 - htmllib和formatter模块:HTML文档...
Python中的cPickle模块是pickle模块的一个C语言实现版本,提供了更快的性能。pickle模块用于序列化和反序列化Python对象,使得数据可以保存到文件或从文件中恢复。cPickle提供了与pickle相似的功能,但速度更快,...
- pickle和cPickle模块:提供对象序列化和反序列化的功能。 - copy_reg模块:用于注册pickle操作的额外信息。 - pprint和repr模块:提供对象的美化打印。 - base64、binhex、quopri和uu模块:用于数据的编码和解码。...
pickle模块及其cPickle模块实现了Python对象的序列化和反序列化,使得对象可以在不同的Python程序间传输和持久化存储。 文件格式模块涉及了对各种文件格式的解析与处理,比如xmllib模块用于解析XML格式的数据;...
本文实例讲述了python使用cPickle模块序列化的方法,分享给大家供大家参考。 具体方法如下: import cPickle data1 = ['abc',12,23] #几个测试数据 data2 = {1:'aaa',"b":'dad'} data3 = (1,2,4) output_file = ...
学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时...cPickle和pickle的序列化/反序列化规则是一样的,我们可以使用
数据表示是 Python 标准库的另一个重要组件,它提供了一些模块用于数据的序列化和反序列化,例如 `array`、`struct`、`xdrlib`、`marshal`、`pickle`、`cPickle` 和 `copy_reg` 等模块。这些模块可以帮助开发者快速...
`pickle`和`cPickle`用于序列化和反序列化Python对象。 4. **网络通信模块**:`socket`模块为网络编程提供了低级别的接口,`http`模块(包括`http.client`和`http.server`)则支持HTTP协议,便于创建Web服务器和...
这部分的模块,如`array`、`struct`、`xdrlib`、`marshal`、`pickle`、`cPickle`、`copy_reg`、`pprint`、`repr`、`base64`、`binhex`、`quopri`、`uu`、`binascii`,提供了数据的多种表示和转换方式,是数据持久化...
在数据表示上,`array`和`struct`用于高效处理二进制数据,`pickle`和`cPickle`序列化和反序列化Python对象,`base64`等模块处理各种编码。 文件格式处理方面,如XML处理有`xml`模块,HTML解析有`htmllib`,配置...