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"

猜你喜欢

转载自blog.csdn.net/Panda996/article/details/84779432