Open In App

Save a dictionary to a file

Improve
Improve
Like Article
Like
Save
Share
Report

A dictionary in Python is a collection where every value is mapped to a key. They are unordered, mutable and there is no constraint on the data type of values and keys stored in the dictionary. This makes it tricky for dictionaries to be stored as files. Know more about dictionaries here.

Syntax:

dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}

Saving Dictionary to a File

There are two main approaches for saving dictionaries into files using Python.

1. Text Files

The most basic way to save dictionaries in Python would be to store them as strings in text files. This method would include the following steps:

  • Opening a file in write/append text mode
  • Converting the dictionary into a string
  • Entering the converted string into the file using write function
filehandler = open(filename, 'wt')
data = str(dictionary)
filehander.write(data)

Reading from the dictionary back from the stored text files is cumbersome and this method should only be used for smaller and non-critical programs.

2. Pickle Module (Recommended)

The pickle module in Python is mostly used in fields like Data Science where data persistence is critical. The pickle module stores the given data as a serialized byte sequence into files which can be easily retrieved at a later time. Pickle module supports various Python objects and dictionaries are one among them. This method would include the following steps:

  • Importing the pickle module
  • Opening the file in write/append binary mode
  • Entering the data into the file using pickle module’s dump method
filehandler = open(filename, 'wb')
pickle.dump(dictionary, filehandler)

Below is the implementation of the above methods.

Example 1: Writing to Text File

Python3




dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile.txt', 'wt')
    geeky_file.write(str(dictionary))
    geeky_file.close()
  
except:
    print("Unable to write to file")


Output:

Example 2: Appending to Text File

Python3




dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile.txt', 'a')
    geeky_file.write(str(dictionary))
    geeky_file.close()
  
except:
    print("Unable to append to file")


Output:

Example 3: Writing using Pickle Module

Python3




import pickle
  
dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile', 'wb')
    pickle.dump(dictionary, geeky_file)
    geeky_file.close()
  
except:
    print("Something went wrong")


Note: As the pickle module stores data in binary form, the data in the file is unreadable by humans.



Last Updated : 29 Dec, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads