1. 程式人生 > >pickle模組以特殊的二進位制格式儲存和恢復資料物件

pickle模組以特殊的二進位制格式儲存和恢復資料物件

  • 先用pickle模組進行資料物件的儲存
     1 import pickle
     2 
     3 data1 = {'a': [1, 2, 3, 9],
     4          'b': ('string', 'Unicode string'),
     5          'c': ('True','False')
     6          }
     7 
     8 list1 = [1, 2, 3]
     9 
    10 output = open('pkl_file', 'wb')
    11 
    12 pickle.dump(data1, output)
    13 
    14 pickle.dump(list1, output)
    
    15 16 output.close()

    如果你對open()函式還不夠了解的話,建議看官方文件(不需要刻意去記,用到隨時查):http://www.runoob.com/python/python-func-open.html 就知道'wb'、'rb'的意思了。pickle.dump(物件,檔案,序列化使用的版本)

  1. 0:ASCII協議,所序列化的物件使用可列印的ASCII碼錶示

  2. 1:老式的二進位制協議

  3. 2:2.3版本引入的新二進位制協議,較以前的更高效。其中協議0和1相容老版本的python。protocol預設值為0。

上邊程式碼的意思是將data1和list1物件以二進位制的形式寫入檔案pkl_file中(此時你可以在自己的專案下邊看到這個檔名)但是怎麼把檔案的內容讀取出來呢???Following me

  • 接著用pickle模組進行資料物件的解析(此時再建立一個新的python file)
    import  pickle
    
    pkl_file = open('pkl_file', 'rb')
    
    data1 = pickle.load(pkl_file)
    
    print(data1)
    
    list1 = pickle.load(pkl_file)
    print(list1)
    
    pkl_file.close()
    

    這時候data1和list1的內容就被讀取出來了。

 

 

堅守自己的夢想比什麼都重要!

 

 

補10個六級單詞:

  1. abbreviation (n)縮寫詞;縮寫
  2. abide(v)容忍,忍受
  3. abreast(ad)並排,並肩
  4. acclaim(vt)稱讚;(n)讚賞
  5. acupuncture(n)針刺
  6. advent(n)出現,到來
  7. adversary(n)對手;(a)對手的
  8. afloat(ad\a)漂浮的(地),在船上的(地)
  9. agitate(v)鼓動,煽動;使焦慮不安
  10. ail(v)困擾;使難受