python中pickle模組學習

   在python中有一個pickle的標準模組,這個模組可以把幾乎python中所有類型通過模組轉換成pickle所能識別的格式進行存儲。

 pickel模組主要有兩個函數dump()和load()

 dump()可以把數據對象以特定的格式保存在指定的文件中

  語法:

   pickle.dump(obj,file)

 load()是從文件中提取已經經過pickle序列化的數據,pickle通過自己的方法進行恢復到原來的格式。

  語法:

    pickle.load(file)

pickle的使用:

   首先使用dump()對一組數據進行序列化存儲

#!/usr/bin/env python  import pickle  account_info = {      82345056 : ['123','150'],      82345057 : ['avcd','90']  }  pkl_file = file('account.pkl','wb')     #文件保存在account.pkl中  pickle.dump(account_info, pkl_file)     #通過dump函數進行序列化處理  pkl_file.close()

當執行完個腳本的時候會在當前目錄下產生一個account.pkl的文件

root@addam:/script#more account.pkl  (dp0  I82345056  (lp1  S'123'  p2  aS'150'  p3  asI82345057  (lp4  S'avcd'  p5  aS'90'  p6  as.

這就是經過pickle序列化之後的文件,當然這個格式估計只有pickle才明白是用什麼格式弄出來的吧,哈哈。。下面要在新的文件中引用這個文件,我們就需要用load()了:

#!/usr/bin/env python  import pickle  pkl_file = file('account.pkl','rb')         #打開剛才存儲的文件  account_dic = pickle.load(pkl_file)         #通過load轉換回來  print account_dic  pkl_file.close()  ~

執行結果如下

root@addam:/script#python Lod.py  {82345056: ['123', '150'], 82345057: ['avcd', '90']}

當然在這個過程中如果我們要修改其中的內容怎麼辦呢,很簡單了

#!/usr/bin/env python  import pickle  account_info = {      82345056 : ['123','150',],      82345057 : ['avcd','90']  }  pkl_file = file('account.pkl','wb')  account_info[82345057][0] = 'abcd123'     #將82345057中列表的第一個值修改為abcd23  pickle.dump(account_info, pkl_file)  pkl_file.close()

 下面我們重新load一下看看是不是修改了呢?

root@addam:/script#python Lod.py  {82345056: ['123', '150'], 82345057: ['abcd123', '90']}

好吧,現在我們可以看到已經修改成功了哦。

 pikcle模組在python中的功能很強大,也是以後經常要用的模組哦。