pickle的使用

1、pickle.dump(object, file, protocol=)  将object对象序列化到打开的文件夹file中。protocol是序列化协议,默认是0,如果是负数或者HIGHEST_PROTOCOL,则使用最高版本序列化协议。

2、pickle.load(file,encoding)  把file中的对象读出,encoding 参数可置为 'bytes' 来将这些 8 位字符串实例读取为字节对象。

3、pickle.dumps(obj,protocol=None) 将 obj 打包以后的对象作为 'bytes'类型直接返回,而不是将其写入到文件。

4、pickle.loads(bytes_object)  对于打包生成的对象 bytes_object,还原出原对象的结构并返回。

dump() 和 load() 与 dumps() 和 loads()的区别 dump()函数能一个接着一个地将几个对象序列化存储到同一个文件中,随后调用load()来以同样的顺序反序列化读出这些对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import  pickle
import  os
listdata  =  [[ 1 , 2 , 3 ],
             [ 2 , 3 , 4 ],
             [ 5 , 6 , 7 ]]
 
# f = "{}/{}".format(r"./practice_data",r"pra.txt")
#
# if not os.path.exists(f):
#     os.md(f)
#将数据序列化
fw  =  open (r "practice_data/pra.txt" , 'wb' )
pickle.dump(listdata,fw, - 1 )
fw.close()
#将序列化数据读出
fr  =  open (r "practice_data/pra.txt" , 'rb' )
fd  =  pickle.load(fr)
print (fd)
fr.close()
 
#使用dumps和loads举例
=  pickle.dumps(listdata)
print (pickle.loads(a))

 输出:

1
2
[[ 1 2 3 ], [ 2 3 4 ], [ 5 6 7 ]]
[[ 1 2 3 ], [ 2 3 4 ], [ 5 6 7 ]]

猜你喜欢

转载自www.cnblogs.com/liujie12/p/12311207.html