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"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章