對python pickle的理解


python 提供了pickle模塊,能將對象進行序列化,將對象以文件形式存放在磁盤。

幾乎所有的數據類型(列表,字典,集合,類等)都可以用pickle來序列化。但是序列化后的數據可讀性很差。

 

pickle最主要的兩個函數:

pickle.dump(obj, file[, protocol])    # 序列化對象,並將結果數據流寫入到文件對象中。

                # 參數protocol是序列化模式,默認值為0,表示以文本的形式序列化。protocol的值還可以是1或2,表示以二進制的形式序列化。

pickle.load(file)        # 反序列化對象。將文件中的數據解析為一個Python對象。

               # 每取一次對象,就要load一次

 dump() 和 pickle() 成對存在

其中要注意的是,在load(file)的時候,要讓python能夠找到類的定義,否則會報錯

例子如下:

 

 1 import pickle
 2 
 3 info_1 = {'admin': 'admin'}
 4 info_2 = {'user': 'user'}
 5 
 6 with open('test.txt', 'wb') as urs_file:
 7     pickle.dump(info_1, urs_file)
 8     pickle.dump(info_2, urs_file)
 9 
10 with open('test.txt', 'rb') as urs_file:
11     while True:
12         try:
13             admin = pickle.load(urs_file)
14             print(admin)
15         except EOFError:
16             break

 

運行結果:

{'admin': 'admin'}
{'user': 'user'}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM