When you are using python pickle library to load an exsiting file, which has saved a python object, you may find TypeError: file must have ‘read’ and ‘readline’ attributes error. In this tutorial, we will introduce how to fix this error and load python object successfully.
Here is an example:
car_obj_2 = pickle.load('binary_list.bin')
Where binary_list.bin is a file that has saved a python object. Then you will get this error: TypeError: file must have ‘read’ and ‘readline’ attributes.
Python pickle.load() function is defined as:
pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict")
Where file is a file object, not a file name.
To fix this error, we should open a file then use pickle.load() function.
Here is a solution.
with open("binary_list.bin","rb") as f: car_obj_2 = pickle.load(f) print(car_obj_2)
Then this error is fixed.