pickle模塊

pickle

先看一下下邊使用pickle模塊的例子:python

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()

輸出結果:code

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)
相關文章
相關標籤/搜索