1. 程式人生 > >Python:pickle模塊學習

Python:pickle模塊學習

highest 進行 編碼 不同 protocal 不能被繼承 col style 字典

1. pickle模塊的作用

將字典、列表、字符串等對象進行持久化,存儲到磁盤上,方便以後使用

2. pickle對象串行化

pickle模塊將任意一個python對象轉換成一系統字節的這個操作過程叫做串行化對象

3. pickle和cpickle

Python標準庫提供pickle和cPickle模塊。cPickle是用C編碼的,在運行效率上比pickle要高,但是cPickle模塊中定義的類型不能被繼承(其實大多數時候,我們不需要從這些類型中繼承,推薦使用cPickle)。cPickle和pickle的序列化/反序列化規則是一樣的,使用pickle序列化一個對象,可以使用cPickle來反序列化

4. pickle中常用的函數

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

作用:將要持久化的數據“對象”,保存到“文件”中,使用有3種協議,索引0為ASCII,1為舊式二進制,2為新式二進制協議,不同之處在於2要更高效一些(默認使用0協議)

(2)pickle.load(file)

作用:從“文件”中讀取字符串,將他們反序列化轉換為python的數據對象

(3)pickle.dumps(obj[, protocol])

作用:將obj對象序列化為string形式,而不是存入文件中

  • obj:想要序列化的obj對象
  • protocal:如果該項省略,則默認為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本

(4)pickle.loads(string)

作用:從string中讀出序列化前的obj對象

Python:pickle模塊學習