有没有人知道将一个完整的类实例直接编写到文件中的方法,而不是使用read()将该对象写成字符串行。我使用pickle.dump()来执行此操作,但文本文件是创建不是一个可读的形式。如果有任何其他方式请告诉。然后在文件对象中明智地读取所有这些对象。并打印它。
答案 0 :(得分:0)
可读格式的问题在于,python需要知道什么是可读格式。我的意思是需要知道如何序列化你的对象。 您可以尝试json,它将自动转换为文本并返回常见的POD数据。即使是嵌套的,所以你可以拥有一个带有嵌套列表和嵌套字典的复杂字典,只要你有pod数据,它就会被序列化。 这意味着您可能需要在您的类上使用序列化/反序列化方法,该方法会吐出一组pod数据并使用相同的数据块重新隐藏该类。
我在一个库上工作以实现这一点,你可能有兴趣看看,它利用了python描述符。 https://github.com/giordi91/storable_class
答案 1 :(得分:0)
Userform.Show vbModeless
来制作Python可读的文本输出。
如果您想以自己的格式打印它,定义自己的方法pickle
将不会那么难:
您可以使用dir(object)遍历对象的属性和方法,并将它们写在文本文件的不同行上。
obj.ouput()
如果您不想要这些方法,则可以在循环时检查def output(self):
with open(self.__name__ + "output.txt","w") as f:
f.write(self.att.__name__ +" "+ self.att + "/n") for att in dir(obj) if not att.startswith('__')
是否为假。