By default, the pickle data format uses a printable ASCII representation.
This is slightly more voluminous than a binary representation. The big
advantage of using printable ASCII (and of some other characteristics of
pickle‘s representation) is that for debugging or recovery purposes it is
possible for a human to read the pickled file with a standard text editor.
There are currently 3 different protocols which can be used for pickling.
- Protocol version 0 is the original ASCII protocol and is backwards compatible
with earlier versions of Python. - Protocol version 1 is the old binary format which is also compatible with
earlier versions of Python. - Protocol version 2 was introduced in Python 2.3. It provides much more
efficient pickling of new-style classes.
Refer to PEP 307 for more information.
If a protocol is not specified, protocol 0 is used. If protocol is specified
as a negative value or HIGHEST_PROTOCOL, the highest protocol version
available will be used.
Changed in version 2.3: Introduced the protocol parameter.
A binary format, which is slightly more efficient, can be chosen by specifying a
protocol version >= 1.