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 pickleimport oslistdata = [[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举例a = 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]] |
原文:https://www.cnblogs.com/liujie12/p/12311207.html