3

我正在用reasonalby 大数据库做一个项目。它不是一个适当的 DB 文件,而是一个格式如下的类: DataBase.Nodes.Data=[[] for i in range(1,1000)]fe 这个 DataBase 总共有几千行。第一个问题 - 是我提高效率的方式,还是使用 SQL 或任何其他“适当的”数据库更好,我实际上从未使用过。主要问题 - 我想保存我DataBase class的所有记录,然后在另一个会话中用 Python 重新打开它。这可能吗,我应该使用什么工具?cPickle - 它似乎只适用于字符串,还有其他吗?

在 matlab 中有一个名为保存工作区的非常有用的功能 - 它将所有变量保存到一个文件中,您可以在另一个会话中打开该文件 - 这在 python 中会有所不同!

4

3 回答 3

3

Pickle (cPickle) 可以处理任何(可腌制的)Python 对象。因此,只要您不尝试腌制线程或文件句柄或类似的东西,就可以了。

于 2010-06-07T15:55:28.750 回答
2

Pickle 应该能够为您序列化数据,以便您可以将其保存到文件中。

或者,如果您不需要功能齐全的 RDBMS 的功能,您可以使用SQLLite之类的轻量级解决方案或MongoDB之类的文档存储

于 2010-06-07T15:56:04.910 回答
1

Pickle.dump 函数非常类似于 matlab 的保存功能。您只需给它一个您希望序列化的对象和一个类似文件的对象来写入它。有关如何使用它的信息和示例,请参阅文档。

cPickle 模块与 Pickle 类似,但它是用 C 语言实现的,因此速度更快。您可能应该使用 cPickle。

于 2010-06-07T16:00:06.810 回答