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?
解决方案
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()