Kik*_*ass 4 python binary class file save
我知道用c ++将类保存到二进制文件中是可能的:
file.write(Class_variable, size_of_class, amount_of_saves, file_where_to_save)
Run Code Online (Sandbox Code Playgroud)
或类似的东西,我想在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)
Run Code Online (Sandbox Code Playgroud)
房间和玩家是class_objects.但它说:
TypeError: must be convertible to a buffer, not PlayerMarty
Run Code Online (Sandbox Code Playgroud)
我能做什么?
nis*_*dox 16
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()
Run Code Online (Sandbox Code Playgroud)