将类保存到二进制文件中-Python

问题描述

pickle是您所需要的。该pickle模块实现了一个基本但功能强大的算法,用于对Python对象结构进行序列化和反序列化。这是一个例子

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()

解决方法

我知道可以使用以下方法将类保存到c ++中的二进制文件中:

file.write(Class_variable,size_of_class,amount_of_saves,file_where_to_save)

或类似的东西,我想在python中使用它,以便更轻松地写入和读取大量数据。

我试图做到这一点:

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)

房间和玩家是class_objects。但它说:

TypeError: must be convertible to a buffer,not PlayerMarty

我能做什么?