`

python核心模块之pickle和cPickle讲解

 
阅读更多

   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 序列化 pickle/cPickle模块使用介绍

    Python序列化的概念很简单...Python标准库提供pickle和cPickle模块。cPickle是用C编码的,在运行效率上比pickle要高,但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们不需要从这些类型中继承,推荐使用c

    Python使用pickle模块存储数据报错解决示例代码

    本文研究的主要是Python使用pickle模块存储数据报错解决方法,以代码的形式展示,具体如下。 首先来了解下pickle模块 pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。 pickle模块只能在...

    详解Python3 pickle模块用法

    pickle(python3.x)和cPickle(python2.x的模块)相当于java的序列化和反序列化操作。 常采用下面的方式使用: import pickle pickle.dump(obj,f) pickle.dumps(obj,f) pickle.load(f) pickle.loads(f) 使用pickle模块...

    python3内置持久化模块pickle心得

    `pickle`是Python的一个内置模块,用于实现Python对象的序列化和反序列化。通过`pickle`,我们可以将Python中的各种数据结构(如列表、字典、元组等)转换成一个字节流(bytes),这样就可以方便地在网络上传输或者...

    使用 pickle 模块在 Python 中进行 pickling 和 unpickling

    在本文中,我们将学习使用 pickle 模块在 Python 中进行 pickling 和 unpickling。 Python Pickle 模块 pickle 模块用于实现二进制协议,用于序列化和反序列化 Python 对象结构。 Pickling:这是一个将 Python 对象...

    python-turtle模块-pickle模块-密码程序-可更改或设置密码

    原创python密码程序 知识领域: turtle模块-输入框 pickle模块-保存数据至txt文本文档 密码程序 可从Set_password.py更改密码 从Password.py运行 如有雷同纯属巧合

    Python标准库json模块和pickle模块使用详解

    ### Python标准库json模块和pickle模块使用详解 #### 一、引言 在现代软件开发中,数据交换和持久化存储是两个常见的需求。为了满足这些需求,Python提供了多种工具来帮助开发者处理数据序列化与反序列化。其中,`...

    python中cPickle用法例子分享

    在python中,一般可以使用pickle类来进行python对象的序列化,而cPickle提供了一个更快速简单的接口,如python文档所说的:“cPickle — A faster pickle”。 cPickle可以对任意一种类型的python对象进行序列化操作...

    Python库 | pickle-mixin-1.0.2.tar.gz

    Python库pickle-mixin-1.0.2是一个用于序列化和反序列化的工具,它扩展了Python内置的pickle模块。pickle模块是Python中用于将对象的状态转化为可存储或可传输格式,以及从这种格式恢复对象的原状的工具。这个库的...

    Python核心学习手册第四版.rar

    Python的强大力量在于它的标准库,本书会介绍许多常用模块,如os、sys、math、datetime、re(正则表达式)、json、pickle等,帮助读者掌握如何利用这些模块进行文件操作、时间日期处理、文本匹配和数据序列化。...

    解决python3读取Python2存储的pickle文件问题

    在Python中,pickle模块用于对象序列化和反序列化。对象序列化是指把内存中的对象状态保存到磁盘文件中,之后可以从文件中恢复对象状态的过程,也称为对象的保存和加载。 pickle模块从Python 2开始就存在,而Python...

    Python pickle模块实现对象序列化

    这篇文章主要介绍了Python pickle模块实现对象序列化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 作用 对Python对象进行序列化,便于存储和传输 Python...

    python中cPickle类使用方法详解

    在python中,一般可以使用pickle类来进行python对象的序列化,而cPickle提供了一个更快速简单的接口,如python文档所说的:“cPickle – A faster pickle”。 cPickle可以对任意一种类型的python对象进行序列化操作...

    Python使用Pickle模块进行数据保存和读取的讲解

    Pickle模块主要提供了两个核心函数:`pickle.dump()`和`pickle.dumps()`,以及它们的对应反序列化函数`pickle.load()`和`pickle.loads()`。 1. `pickle.dump(obj, file, protocol=None)`:此函数将Python对象`obj`...

    Python核心编程代码

    《Python核心编程(第二版)》是一本深受程序员喜爱的经典教程,它全面深入地介绍了Python语言的核心概念和技术。这本书的附带源代码是学习和理解Python编程的重要资源,提供了丰富的实例和练习,帮助读者巩固理论...

    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. cmath 模块 1.11. operator ...

    Python 中Pickle库的使用详解

    Python中的Pickle库是一个用于序列化和反序列化Python对象结构的标准库模块。序列化是指将对象的状态信息转换为可以存储或传输的形式的过程,在Python中通常是指将对象转换为一个字节流。反序列化则是将这个字节流...

    python中的Pickle文件和npy文件(csdn)————程序.pdf

    - **介绍**:Pickle模块是Python内置的一种序列化和反序列化的库,它可以将Python对象转化为字节流(序列化),然后将这个字节流还原为原来的Python对象(反序列化)。Pickle文件就是存储了这些序列化后的对象的...

    Python基础——pickle(保存与提取数据)

    pickle 是一个 python 中, 压缩/保存/提取 文件的模块. 最一般的使用方式非常简单. 比如下面就是压缩并保存一个字典的方式. 字典和列表都是能被保存的. import pickle dict_ = {'red':1,'green':2,'blue':3} file = ...

Global site tag (gtag.js) - Google Analytics