pickle模組簡介
pickle模組可以將記憶體中的python物件轉化成序列化的位元組流,這是一種可以寫入任何類似檔案物件的位元組串。pickle模組也可以根據序列化的位元組流重新構建原來記憶體中的物件:轉換成原來那個物件。
——mark lutz
pickle模組可以有效地解決構建資料庫的問題,下面介紹pickle模組的主要方法(持續更)
pickle模組常用方法
pickle.dump(obj, file,
protocol=none, *
, fix_imports=true
):此方法可以將乙個物件轉換為序列化的位元組流,並寫入file檔案中。第乙個引數是寫入物件,第二個引數是寫入資料夾,之後三個物件控制與python2相容的問題,在此不做解釋。
方法例項:
import pickle #引入pickle模組
obj = '小明'
with open('d:','wb') as f: #以二進位制寫入模式開啟檔案
pickle.dump(obj,f)
f.close()
注意:這裡開啟檔案的方式一定是二進位制模式,不然會報錯,原因與write()的引數有關,具體不知,以後分析了原始碼後再來解決。這裡要用二進位制寫入模式開啟
這個方法最後的執行的結果是在d盤建立了乙個pickle.pkl檔案,並將'小明'這個字串以位元組流的形式存了進去。
pickle.load(file,*, fix_imports=true, encoding="ascii", errors="strict"):
此方法可以將之前序列化的位元組流轉換為原來的物件,及dump方法的逆過程。第乙個引數是位元組流儲存的檔案,後面幾個引數暫時沒學習到
方法例項:
import pickle #引入pickle模組
obj = '小明'
with open('d:','wb') as f: #以二進位制寫入模式開啟檔案
pickle.dump(obj,f)
f.close()
with open('d:','rb') as f: #以二進位制閱讀模式開啟檔案
text = pickle.load(f)
print(text)
>>
小明
ps:同樣要以二進位制模式開啟,不然會報錯。這裡的模式選用二進位制讀取模式
pickle.dumps(obj, protocol=none, *, fix_imports=true):
此方法將乙個物件轉化為序列化的位元組流,與dump類似,只是不寫入檔案中去。引數意義與dump方法相同
方法例項:
import pickle
obj = 'xiaoming'
text = pickle.dumps(obj)
print(text)
>>
b'\x80\x03x\x08\x00\x00\x00xiaomingq\x00.'
pickle.loads(bytes_object, *, fix_imports=true, encoding="ascii", errors="strict"):
此方法將乙個位元組流轉為原物件,是dumps方法的逆過程。第乙個引數代表位元組流物件,後面的引數暫時沒學到。
方法例項:
import pickle
obj = 'xiaoming'
text = pickle.dumps(obj)
print(text)
text=(pickle.loads(text))
print(text)
>>
b'\x80\x03x\x08\x00\x00\x00xiaomingq\x00.'
xiaoming
【未完待續】 Python學習16 永續性儲存 pickle
python的pickle模組實現了基本的資料序列和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存 通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。基本方法 pickle.dump obj,file,protocol 註...
python學習(模組)
模組搜尋路徑 匯入乙個叫 spam 的模組時,直譯器先在當前目錄中搜尋名為 spam.py 的檔案,然後在環境變數 pythonpath 指琮的目錄列表中搜尋,然後是環境變數 path 中的路徑列表。如果 pythonpath 沒有設定,或者檔案沒有找到,接下來搜尋安裝目錄,在 unix 中,通常是...
python 模組學習
一 from django.contrib.auth.hashers import make password 通過函式名即可發現,主要有兩個函式,分別是建立密碼和驗證 用法ps 123456 dj ps make password ps,none,pbkdf2 sha256 建立django密碼,...