Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何存储项目文件,以便在将来的应用程序版本中仍然可以导入它们_Python_Save_Future_Compatibility - Fatal编程技术网

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

Python 如何存储项目文件,以便在将来的应用程序版本中仍然可以导入它们,python,save,future,compatibility,Python,Save,Future,Compatibility,简单地说,我已经制作了一个程序,用户可以在其中启动一个项目,做一些事情并保存该项目。 假设项目的有用数据存储在ProjectData类中 要保存项目,我转储ProjectData对象的序列化版本,如下所示: with open('filename.pickle', 'wb') as handle: pickle.dump(project_data_object, handle) 这样做使我很容易导入项目并开始编辑它,因为它可以在需要时重新加载对象 我仍然经常编辑我的程序,并选择向我的P

简单地说,我已经制作了一个程序,用户可以在其中启动一个项目,做一些事情并保存该项目。 假设项目的有用数据存储在ProjectData类中

要保存项目,我转储ProjectData对象的序列化版本,如下所示:

with open('filename.pickle', 'wb') as handle:
    pickle.dump(project_data_object, handle)
这样做使我很容易导入项目并开始编辑它,因为它可以在需要时重新加载对象

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

我可以将程序的版本号与pickle文件一起存储,然后打开该版本号来确定使用了哪个类,然后将数据加载到该类的对象中,但这似乎有点不方便。它将产生许多类定义(每个版本一个)

是否有一种更健壮/优雅的方法来处理保存项目文件,并尝试使它们成为未来版本的机器人