Save a class into a binary file - Python
10,919
Solution 1
pickle
is what you need. The pickle
module implements a fundamental, but powerful algorithm for serializing and de-serializing a Python object structure. This is an example
import pickle
class MyClass:
def __init__(self,name):
self.name = name
def display(self):
print(self.name)
my = MyClass("someone")
pickle.dump(my, open("myobject", "wb"))
me = pickle.load(open("myobject", "rb"))
me.display()
Solution 2
You can get at the bytes of Python objects to save & restore them like that, but it's not easy to do directly. However, the standard pickle module simplifies the process enormously.
![Kikadass](https://lh5.googleusercontent.com/-K_vsGi8tNnk/AAAAAAAAAAI/AAAAAAAAAD0/TJOaKU2Qdxo/photo.jpg?sz=256)
Author by
Kikadass
I'm a student in Computer Sciences in Reading University. Currently in a personal project creating a video game :D
Updated on June 17, 2022Comments
-
Kikadass about 2 years
I'm aware that saving a class into a binary file in c++ is possible using:
file.write(Class_variable, size_of_class, amount_of_saves, file_where_to_save)
or something similar, and I wanted to use that in python in order to make it easier to write and read lots of data.
I've tried to do this:
def Save_Game(player, room): address = 'Saves/player' file = open(address, 'wb') file.write(player) address = 'Saves/room' file = open(address, 'wb') file.write(room)
Room and player being class_objects. But it says:
TypeError: must be convertible to a buffer, not PlayerMarty
What can I do?