python基礎之pickle
阿新 • • 發佈:2018-12-04
序列化:將文字資訊轉化為二進位制資料流。
作用:便於儲存,便於傳輸。
pickle提供四個功能:dumps,dump,loads,load
pickle支援的資料型別:1. 整數,浮點數,複數,布林值,字串,位元組,None. 2. 列表,元組,字典,集合。3. 函式,類和物件.
1. pickle.dump(obj, file, protocol=None,)
必填引數obj表示將要封裝的物件
必填引數file表示obj要寫入的檔案物件,file必須以二進位制可寫模式開啟,即“wb”
可選引數protocol表示告知pickler使用的協議,支援的協議有0,1,2,3,預設的協議是新增在Python 3中的協議3。
2. pickle.load(file,*,fix_imports=True, encoding="ASCII", errors="strict")
必填引數file必須以二進位制可讀模式開啟,即“rb”,其他都為可選引數
3. pickle.dumps(obj):以位元組物件形式返回封裝的物件,不需要寫入檔案中
4. pickle.loads(bytes_object): 從位元組物件中讀取被封裝的物件,並返回.
例1:
>>>import pickle >>>List=[1,2,3,4] >>>file=open("a.txt","wb") >>>pickle.dump(List,file) >>>file.close()
例 2:
>>>import pickle
>>>file=open("a.txt","rb")
>>>a=pickle.load(file)
>>>file.close()
>>>a
[1,2,3,4]
例 3 :
>>>import pickle #序列化 >>>a="python" >>>a_bytes=pickle.dumps(a) #沒有存入檔案中 >>>a_bytes b'\x80\x03X\x06\x00\x00\x00pythonq\x00.'
例 4:
import pickle
#反序列化
>>>b=b'\x80\x03X\x06\x00\x00\x00pythonq\x00.'
>>>b_str=pickle.loads(b)
>>>b_str
"python"