1 import pickle
2
3 # 在python中如果我们有一些对象需要持久性存储,并且不丢失我们这个对象的类型与数据,
4 # 我们则需要将这些对象进行序列化,序列化后,需要使用的时候,我们在回复为原来的数据,
5 # 序列化的这种过程,我们将其称为pickle(腌制)
6
7
8 # 1、dumps(object) python对象 --> 字符串
9 list_a = ["mingyue", "jishi", "you"]
10 list_b = pickle.dumps(list_a)
11 print(list_b)
12
13
14 # 2、loads(string) 字符串 --> python对象
15 list_c = pickle.loads(list_b)
16 print(list_c)
17
18
19 # 3、dump(object, file) python对象 --> 文件
20 group1 = ("baidu", "wen", "qingtian")
21 f1 = open("1.pk1", "wb")
22 pickle.dump(group1, f1, True)
23 f1.close()
24
25 # 4、load(object, file) 文件 --> python对象
26 f2 = open("1.pk1", "rb")
27 t = pickle.load(f2)
28 print(t)
29 f2.close()
30
31 """
32 dump(obj, file, protocol=None, *, fix_imports=True)
33 Write a pickled representation of obj to the open file object file.
34
35 This is equivalent to ``Pickler(file, protocol).dump(obj)``, but may
36 be more efficient.
37
38 The optional *protocol* argument tells the pickler to use the given
39 protocol supported protocols are 0, 1, 2, 3 and 4. The default
40 protocol is 3; a backward-incompatible protocol designed for Python 3.
41
42 Specifying a negative protocol version selects the highest protocol
43 version supported. The higher the protocol used, the more recent the
44 version of Python needed to read the pickle produced.
45
46 The *file* argument must have a write() method that accepts a single
47 bytes argument. It can thus be a file object opened for binary
48 writing, an io.BytesIO instance, or any other custom object that meets
49 this interface.
50
51 If *fix_imports* is True and protocol is less than 3, pickle will try
52 to map the new Python 3 names to the old module names used in Python
53 2, so that the pickle data stream is readable with Python 2.
54
55 dumps(obj, protocol=None, *, fix_imports=True)
56 Return the pickled representation of the object as a bytes object.
57
58 The optional *protocol* argument tells the pickler to use the given
59 protocol; supported protocols are 0, 1, 2, 3 and 4. The default
60 protocol is 3; a backward-incompatible protocol designed for Python 3.
61
62 Specifying a negative protocol version selects the highest protocol
63 version supported. The higher the protocol used, the more recent the
64 version of Python needed to read the pickle produced.
65
66 If *fix_imports* is True and *protocol* is less than 3, pickle will
67 try to map the new Python 3 names to the old module names used in
68 Python 2, so that the pickle data stream is readable with Python 2.
69
70 load(file, *, fix_imports=True, encoding='ASCII', errors='strict')
71 Read and return an object from the pickle data stored in a file.
72
73 This is equivalent to ``Unpickler(file).load()``, but may be more
74 efficient.
75
76 The protocol version of the pickle is detected automatically, so no
77 protocol argument is needed. Bytes past the pickled object's
78 representation are ignored.
79
80 The argument *file* must have two methods, a read() method that takes
81 an integer argument, and a readline() method that requires no
82 arguments. Both methods should return bytes. Thus *file* can be a
83 binary file object opened for reading, an io.BytesIO object, or any
84 other custom object that meets this interface.
85
86 Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
87 which are used to control compatibility support for pickle stream
88 generated by Python 2. If *fix_imports* is True, pickle will try to
89 map the old Python 2 names to the new names used in Python 3. The
90 *encoding* and *errors* tell pickle how to decode 8-bit string
91 instances pickled by Python 2; these default to 'ASCII' and 'strict',
92 respectively. The *encoding* can be 'bytes' to read these 8-bit
93 string instances as bytes objects.
94
95 loads(data, *, fix_imports=True, encoding='ASCII', errors='strict')
96 Read and return an object from the given pickle data.
97
98 The protocol version of the pickle is detected automatically, so no
99 protocol argument is needed. Bytes past the pickled object's
100 representation are ignored.
101
102 Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
103 which are used to control compatibility support for pickle stream
104 generated by Python 2. If *fix_imports* is True, pickle will try to
105 map the old Python 2 names to the new names used in Python 3. The
106 *encoding* and *errors* tell pickle how to decode 8-bit string
107 instances pickled by Python 2; these default to 'ASCII' and 'strict',
108 respectively. The *encoding* can be 'bytes' to read these 8-bit
109 string instances as bytes objects.
110 """