码迷,mamicode.com
首页 > 其他好文 > 详细

pickle模块

时间:2018-09-01 17:37:17      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:elf   序列   通过   一个   二进制   import   否则   protocol   obj   

pickle

先看一下下边使用pickle模块的例子:

import pickle
class Person:
  def __init__(self,n,a):
    self.name=n
    self.age=a
  def show(self):
    print self.name+"_"+str(self.age)
aa = Person("JGood", 2)
aa.show()
f=open(‘d:\\p.txt‘,‘w‘)
pickle.dump(aa,f,0)#序列化存起来
f.close()
#del Person
f=open(‘d:\\p.txt‘,‘r‘)
bb=pickle.load(f)#反序列化
f.close()
bb.show()

输出结果:

JGood_2
JGood_2
  • 如果不注释掉del Person的话,那么会报错当前模块找不到类的定义了。
  • 在load(file)的时候,要让python能够找到类的定义,否则会报错

那么,pickle 模块是用来干什么的呢?

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

基本接口

1 序列化对象

pickle.dump(obj, file[, protocol])
  • 序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。

2 反序列化对象。将文件中的数据解析为一个Python对象。

pickle.load(file)

pickle模块

标签:elf   序列   通过   一个   二进制   import   否则   protocol   obj   

原文地址:https://www.cnblogs.com/monkey-moon/p/9570749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!