1. 程式人生 > >python基礎之pickle

python基礎之pickle

序列化:將文字資訊轉化為二進位制資料流。

作用:便於儲存,便於傳輸。

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"