Module pickle. Serialization of objects. Examples of use for writing/reading information from binary files
Contents
- 1. Module pickle. Serialization/deserialization of objects
- 2. Using pickle module. Methods dump(), load()
- 3. Read/write a list that contains real numbers. Example
- 4. Writing/reading a tuple containing strings. Example
- 5. Writing/reading a set with different data types. Example
- 6. Writing/reading objects of different types: list, tuple and dictionary. Example
- Related topics
Search other websites:
1. Module pickle. Serialization/deserialization of objects
The pickle module allows you to save any Python objects in files without using unnecessary conversions. In general, the pickle module implements a binary protocol for serializing and deserializing objects. Serialization refers to the conversion of objects to a string of bytes. Deserialization involves the inverse of converting a stream of bytes into a source object.
Using the pickle module, you can:
- implement the transformation of the hierarchy of objects into a stream of bytes (pickling). A byte stream may be, for example, a file;
- implement back converting of the byte stream into an object hierarchy (unpickling). A stream of bytes can be obtained from a binary file or byte object.
⇑
2. Using pickle module. Methods dump(), load()
The pickle module is used to work with objects of type bytes and provides serialization of objects. To use pickle module methods, you must first include it
import pickle
To write an object to a file, you need to use the dump() method. The simplest method call is as follows
pickle.dump(obj, file, protocol = None, *, fix_imports = True)
where
- obj – saved object. This object can be a number, a string, a list, a tuple, a set, a dictionary, or another object;
- file – binary file, in which the object can be saved.
To read an object from the file, use the load() method. In the simplest case, the call to the load() method is as follows
obj = pickle.load(file)
here obj – object obtained from file.
⇑
3. Read/write a list that contains real numbers. Example
Using the dump() and load() methods of the pickle module, you can save a variety of lists in files. You do not need to do additional conversions.
# Module pickle. Working with files # Writing/reading a list containing real numbers # 1. Source list L = [ 2.85, 3.35, -1.77, 9.2 ] # 2. Include module pickle import pickle # 3. Writing a list to a binary file # 3.1. Open file for writing f = open('myfile.bin', 'wb') # 3.2. Save list L to the file f pickle.dump(L, f) # 3.3. Close file f.close() # 4. Reading list from file # 4.1. Open file for reading f = open('myfile.bin', 'rb') # 4.2. Get list from file L2 = pickle.load(f) # 4.3. Display list L2 print('L2 = ', L2) # L2 = [2.85, 3.35, -1.77, 9.2] # 4.4. Закрыть файл f.close()
The result of the program
L2 = [2.85, 3.35, -1.77, 9.2]
⇑
4. Writing/reading a tuple containing strings. Example
Writing and reading a tuple is no different from writing and reading a list or any other object.
# Module pickle. Working with binary files # Writing/reading a tuple # 1. The specified tuple of strings T = ( 'abc', 'abcd', 'cde', 'fgh hij' ) # 2. Include module pickle import pickle # 3. Save tuple to file # 3.1. Open file for writing f = open('myfile.bin', 'wb') # 3.2. Save tuple T to file f pickle.dump(T, f) # 3.3. Close file f.close() # 4. Reading tuple from file # 4.1. Open file for reading f = open('myfile.bin', 'rb') # 4.2. Read tuple from file T2 = pickle.load(f) # 4.3. Close the file f.close() # 5. Display the tuple print('T2 = ', T2) # T2 = ('abc', 'abcd', 'cde', 'fgh hij')
The result of the program
T2 = ('abc', 'abcd', 'cde', 'fgh hij')
⇑
5. Writing/reading a set with different data types. Example
# Module pickle. Working with binary files # Writing/reading a set # 1. Specified set of objects of different types M = { 2, 5.85, True, 'abcde' } # 2. Include module pickle import pickle # 3. Save set to the file # 3.1. Open file for writing f = open('myfile.bin', 'wb') # 3.2. Save set M to the file f pickle.dump(M, f) # 3.3. Close file f.close() # 4. Reading set from file # 4.1. Open file for reading f = open('myfile.bin', 'rb') # 4.2. Read set from file M2 = pickle.load(f) # 4.3. Закрыть файл f.close() # 5. Display the set print('M2 = ', M2) # M2 = {True, 5.85, 2, 'abcde'}
The result of the program
M2 = {True, 5.85, 2, 'abcde'}
⇑
6. Writing/reading objects of different types: list, tuple and dictionary. Example
This example demonstrates the capabilities of the pickle module for saving objects of different types: list, tuple and dictionary.
# Module pickle. Working with files # Writing/reading objects of different types # 1. Input data # 1.1. Source list L = [ True, 'abc', 2.5, 100 ] # 1.2. Source tuple T = ( 2.55, False, 'Hello' ) # 1.3. Dictionary with objects of different types D = { 1:'abc', 2:2.55, 'Three':False } # 2. Include module pickle import pickle # 3. Write data to binary file # 3.1. Open file for writing f = open('myfile.bin', 'wb') # 3.2. Save list L to the file f pickle.dump(L, f) # 3.3. Save tuple to file pickle.dump(T, f) # 3.4. Save D to file f pickle.dump(D, f) # 3.5. Close file f.close() # 4. Reading a list from a file # 4.1. Open file for reading f = open('myfile.bin', 'rb') # 4.2. Read list from file L2 = pickle.load(f) # 4.3. Read tuple from file T2 = pickle.load(f) # 4.4. Read dictionary from file D2 = pickle.load(f) # 4.5. Display list, tuple and dictionary print('L2 = ', L2) # L2 = [True, 'abc', 2.5, 100] print('T2 = ', T2) # T2 = (2.55, False, 'Hello') print('D2 = ', D2) # D2 = {1: 'abc', 2: 2.55, 'Three': False} # 4.6. Close the file f.close()
⇑
Related topics
- Files. General concepts. Opening/closing a file. Functions open(), close()
- Examples of working with text files
- Binary files. Examples of working of binary files
- Module struct. Working with binary files. Examples of writing/reading packed binary data
⇑