How to Use Pickle to Save and Load Variables in Python?

Pickle is a Python module that is used for data serialization converting data into a byte stream. Pickle allows developers to save and load variables from memory to disk, ensuring data integrity and easy retrieval. In this article, we will explore how to utilize Pickle effectively to save and load variables in Python.

Understanding Pickle

Pickle is a built-in module in Python that enables object serialization, which refers to the process of converting objects into a byte stream. The byte stream can be stored as a file, transferred over the network, or even persisted in a database. Pickle allows the serialization and deserialization of complex Python objects, including lists, dictionaries, classes, and more. It provides a simple and efficient way to save variables in their entirety, preserving their state and structure.

Algorithm

A general algorithm for saving and loading data using pickle is as follows ?

  • Import the Pickle module using import pickle.

  • To save variables:

    • Open a file in binary mode using open(file_path, 'wb').

    • Serialize and write the variable to the file using pickle.dump(variable, file).

    • Close the file using file.close() or utilize the with statement.

  • To load variables:

    • Open the file in binary mode using open(file_path, 'rb').

    • Deserialize and retrieve the variable from the file using pickle.load(file).

    • Close the file using file.close() or utilize the with statement.

Saving Variables with Pickle

To save a variable using Pickle, we need to open a file in binary mode and write the serialized object into it. Here's how to save a list to a file ?

import pickle

# Create data to save
student_data = {'name': 'Alice', 'age': 25, 'grades': [85, 90, 78]}
file_path = 'student.pickle'

# Save the variable using pickle
with open(file_path, 'wb') as file:
    pickle.dump(student_data, file)

print("Data has been saved successfully!")
Data has been saved successfully!

Loading Variables with Pickle

To load a saved variable using Pickle, we open the file in binary read mode and deserialize the content ?

import pickle

# First, let's save some data
student_data = {'name': 'Alice', 'age': 25, 'grades': [85, 90, 78]}
file_path = 'student.pickle'

with open(file_path, 'wb') as file:
    pickle.dump(student_data, file)

# Now load the data back
with open(file_path, 'rb') as file:
    loaded_data = pickle.load(file)

print("Loaded Data:", loaded_data)
print("Student Name:", loaded_data['name'])
print("Student Grades:", loaded_data['grades'])
Loaded Data: {'name': 'Alice', 'age': 25, 'grades': [85, 90, 78]}
Student Name: Alice
Student Grades: [85, 90, 78]

Saving Multiple Variables

You can save multiple variables in a single pickle file by storing them in a container like a tuple or dictionary ?

import pickle

# Multiple variables to save
numbers = [1, 2, 3, 4, 5]
text = "Hello World"
settings = {'theme': 'dark', 'font_size': 12}

# Save all variables together
data_to_save = {
    'numbers': numbers,
    'text': text,
    'settings': settings
}

with open('multiple_vars.pickle', 'wb') as file:
    pickle.dump(data_to_save, file)

# Load all variables back
with open('multiple_vars.pickle', 'rb') as file:
    loaded_vars = pickle.load(file)

print("Numbers:", loaded_vars['numbers'])
print("Text:", loaded_vars['text'])
print("Settings:", loaded_vars['settings'])
Numbers: [1, 2, 3, 4, 5]
Text: Hello World
Settings: {'theme': 'dark', 'font_size': 12}

Key Points

  • Binary Mode: Always open files in binary mode ('wb' for writing, 'rb' for reading)

  • Data Types: Pickle works with most Python data types including lists, dictionaries, sets, and custom objects

  • File Extension: Common extensions include .pickle, .pkl, or .p

  • Security: Only unpickle data from trusted sources as pickle can execute arbitrary code

Conclusion

Pickle provides a simple and efficient way to save and load Python variables to disk. Use pickle.dump() to serialize data to a file and pickle.load() to deserialize it back. Always use binary mode when opening files and be cautious when loading pickled data from untrusted sources.

Updated on: 2026-03-27T15:16:29+05:30

14K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements