pickle模块

Posted chris-01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pickle模块相关的知识,希望对你有一定的参考价值。

注意:1、所有pickle文件的读写都要用二进制形式即’rb‘ 、‘wb‘等形式,不然会报错。

  2、个人理解:pickle模块相当于在文件保存读取中加了一个步骤以便于将程序运行中的信息保存到文件中去。

  • pickle.dump()将文件保存为pickle模式
  • pickle.load()读取pickle文件

python的pickle模块实现了基本的数据序列和反序列化。

通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。

通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

基本接口:

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

有了 pickle 这个对象, 就能对 file 以读取的形式打开:

x = pickle.load(file)

注解:从 file 中读取一个字符串,并将它重构为原来的python对象。

file: 类文件对象,有read()和readline()接口。

实例1:

#!/usr/bin/python3
import pickle

# 使用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()

 

实例2:

#!/usr/bin/python3
import pprint, pickle

#使用pickle模块从文件中重构python对象
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()

示例3:小甲鱼python视频 031

以上是关于pickle模块的主要内容,如果未能解决你的问题,请参考以下文章

python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

python文件操作:pickle模块多次dump后出现的读取问题

用pickle加速sklearn/机器学习的分类任务?

pickle模块

模块调用,datetime,time,logging,递归,双层装饰器, json,pickle迭代器和生成器

pickle模块和json模块