Search code examples
pythonpickle

Error Pickling in Python: io.UnsupportedOperation: read


I am trying to learn how to pickle and save an object in python. However, when I use the sample code below I get the following error: io.UnsupportedOperation: read which traces back to favorite_color = pickle.load(f_myfile). I cannot find a good explanation of this particular error. What am I doing wrong and how do I correct it?

import pickle  # or import cPickle as pickle

# Create dictionary, list, etc.
favorite_color = { "lion": "yellow", "kitty": "red" }

# Write to file
f_myfile = open('myfile.pickle', 'wb')
pickle.dump(favorite_color, f_myfile)
f_myfile.close()

# Read from file
f_myfile = open('myfile.pickle', 'wb')
favorite_color = pickle.load(f_myfile)  # variables come out in the order you put them in
f_myfile.close()

Solution

  • Change:

    # Read from file 
    f_myfile = open('myfile.pickle', 'wb')
    

    to:

    f_myfile = open('myfile.pickle', 'rb')
    

    and you can see the dict obj you've pickled.