如何存储项目文件,以便仍可以在将来的应用程序版本中导入它们

问题描述

简而言之,我已经成为一个程序,用户可以在其中启动一个项目,然后做一些事情并保存该项目。 可以说,项目的有用数据存储在 ProjectData 类中。

要保存项目,我将 ProjectData 对象的序列化版本保存为:

with open('filename.pickle','wb') as handle:
    pickle.dump(project_data_object,handle)

这样做使我很容易导入项目并开始对其进行编辑,因为它可以在需要时将对象重新加载。

我仍然经常编辑程序,并选择向 ProjectData 类(或函数添加某个属性,本质上,有时我有时需要更改类。但是当我这样做时,我不能再导入旧版本的项目文件

我可以将程序的版本号与pickle文件一起存储,并打开该编号以决定使用哪个类,然后将数据加载到该类的对象中,但这似乎有点麻烦。这将导致许多类定义(每个版本一个)。

是否有一种更强大/更优雅的方式来处理保存项目文件,并尝试使其成为将来的版本?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)