python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

dump方法

pickle.dump(obj, file, [,protocol])

功能:序列化对象,将对象obj保存到文件file中去。

参数protocol:表示用到的序列化协议。目前有5种协议,但不需要作过多了解,一般它的取值有以下两种:

pickle.HIGHEST_PROTOCOL:表示最高可用的协议版本。点击此处了解更多

pickle.DEFAULT_PROTOCOL:表示用来pickling的默认协议版本。可能比pickle.HIGHEST_PROTOCOL小。目前默认的协议版本是3,协议3是专门为Python3设计的一种新的协议。

如果没有指定该参数,就是默认的DEFAULT_PROTOCOL。

参数file:file表示保存到的类文件对象,file必须有write()接口,file可以是一个以'w'打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象。

load方法

pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict")

功能:从文件对象中读取一个序列化后的对象并将其解序列化成原来的层级结构。

file参数必须有两个方法:read()方法接收一个整数参数和一个readlines()方法不要求参数。两个方法都应该返回字节。

其他参数暂不关注

pickle模块衍生出两个类

class pickle.Pickler(file, protocol=None, *, fix_imports=True)

class pickle.Unpickler(file, *, fix_imports=True, encoding="ASCII", errors="strict")

这两个类也有一些方法,跟上面的方法等价,例如Pickler类的dump()方法和Pickler(file, protocol).dump(obj)等价、load()方法和Unpickler类的load()方法等价。

什么东西可以被序列化

None, True, 和 False

整数、浮点数和复数

字符串、字节和字节数组

元组、列表、集合和仅包括可序列化对象的字典

定义在一个模块上层的函数

定义在一个模块上层的内建函数

定义在一个模块上层的类

一些类的实例,这些类包括其__dict__或调用__getstate__()的结果是可序列化的。

示例代码

import pickle

# An arbitrary collection of objects supported by pickle.

# 支持序列化的字典

data = {

'a': [1, 2.0, 3, 4+6j],

'b': ("character string", b"byte string"),

'c': {None, True, False}

}

with open('data.pickle', 'wb') as f:

# Pickle the 'data' dictionary using the highest protocol available.

# 用最高协议版本序列化data字典,将其写入文件"data.pickle"中

pickle.dump(data, f, pickle.HIGHEST_PROTOCOL)

# 经过上面的代码,已经在本地磁盘中写入了一个文件"data.pickle",现在我们将其读入,并将其解序列化

import pickle

with open('data.pickle', 'rb') as f:

# The protocol version used is detected automatically, so we do not

# have to specify it.

data = pickle.load(f)

print(data)

参考博客:

pickle模块 python_Python之Pickle模块相关推荐

  1. python模块之json,pickle

    序列化是指把内存里的数据转变成字符串,以使其能保存到硬盘上或者通过网络输送到远程. 序列化的两个模块: json:只能把python中的int/str/list/tuple/dict类型的数据,可以在 ...

  2. python中常用的序列化模块_使用pickle模块对python对象进行序列化

    pickle模块是Python自带的一个标准模块,专用于Python各种对象的序列化和反序列化,可用于Python内置的各种数据对象(Python中一切都是对象),也可用于程序员自定义的类和对象. p ...

  3. python保存模块_Python使用Pickle模块进行数据保存和读取的讲解

    pickle 是一个 python 中, 压缩/保存/提取 文件的模块,字典和列表都是能被保存的. 但必须注意的是python2以ASCII形式保存,而在python3中pickle是使用转换二进制的 ...

  4. python基础学习(十六)——超详细!pickle模块的使用(pickle.dump()和pickle.load())

    python的pickle模块提供了一个简答的持久化功能,可以将对象以文件的形式存放在磁盘上. pickle模块实现了基本的数据序列化和反序列化 通过pickle模块的序列化操作pickle.dump ...

  5. 模块 python_Python入门基础:模块基础

    模块是一个文件(.py文件),包含变量,类定义语句和与特定任务相关的功能.预先装有Python的Python模块称为标准库模块. 创建我们的模块 我们将创建一个名为tempConversion.py的 ...

  6. sqlite3修改表内容python_Python sqlite3数据库模块使用攻略

    Python作为数据科学主流语言,被广泛用于数据读存.处理.分析.建模,可以说是无所不能. 数据一般存放在本地文件或者数据库里,之前介绍过如何使用python读取本地文件,也对# PyMySQL.cx ...

  7. python3 模块编写_python3 _pickle模块详解

    python3 中cpickle更名为_pickle,pickle模块由python编写,_pickle有C编写. python程序运行中得到了一些字符串,列表,字典等数据,想要长久的保存下来,方便以 ...

  8. python必学的模块_Python常用的模块

    模块和包 1.1模块介绍模块定义:一系列功能的集合体 模块使用: import导入模块 或者 from ... import... 导入模块 模块分类:内置模块 自定义模块 第三方模块 模块加载顺序: ...

  9. python的主要应用领域及常用的函数模块_python之常用模块篇5

    一.日志模块,logging模块 1)logging模块简单使用,屏幕输出.默认级别30 import logging logging.debug('debug...') # 10logging.in ...

最新文章

  1. ASP.NET 开发知识小结
  2. 软件开发管理的十大工作任务(FROM 栾跃)
  3. HTTP 错误 500.19- Internal Server Error 错误解决方法
  4. POJ 1961 KMP(当前重复次数)
  5. AJAX ASP/PHP 请求实例
  6. Flex State
  7. BZOJ3998 TJOI2015弦论(后缀数组+二分答案)
  8. java包装项目_项目包装组织
  9. mongoose 查询 find 指定字段
  10. 第二课计算机ppt,第二课计算机系统.ppt
  11. Java DataInputStream readUnsignedByte()方法(带示例)
  12. Tensorflow实现多层感知函数逼近
  13. lc滤波电路电感电容值选择_滤波电容如何选择
  14. fx5u mc协议_三菱PLC编程入门:FX5U系列常见问题!
  15. C++校内模拟赛-06水题
  16. java多线程死锁代码_java多线程死锁 编写高质量代码:改善Java程序的151个建议...
  17. 听说C语言很难?怎么不来看看我这篇(六)结构
  18. 京东怎么做《IOS系统APP耗电量检测分析和优化》?
  19. 本程序实现求n*m的二维数组元素的最大值,请将程序补充完整,以实现规定功能
  20. bin文件分析发现的问题(1)

热门文章

  1. 普通高中课程标准实验教科书(必修)数学2_学习笔记
  2. 小米9android q测试版,小米9 MIUI Android Q Beta优先体验版正式推送:轻松升级
  3. python字符串换行的三种方式_Python 字符串换行的多种方式
  4. 看看iPhone 11 Pro Max的内部元器件供应商都有谁!
  5. 那些年来自前端的双关语小段子
  6. 十一届蓝桥杯c组--省一国二
  7. 泛微OA二次开发环境搭建
  8. php搜索功能代码实列,如何实现PHP搜索功能
  9. Mysql学习笔记3-数据类型+创建数据表+唯一性
  10. 多图详解 DeepMind 的超人类水准星际争霸 AI 「AlphaStar」...