如何在python中保存大的“类数据库”类

时间:2010-06-07 15:52:15

标签: python serialization pickle object-persistence

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

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

3 个答案:

答案 0 :(得分:3)

Pickle(cPickle)可以处理任何(可选择的)Python对象。所以,只要你没有尝试挑选线程或文件句柄或类似的东西,你就可以了。

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

cPickle模块就像Pickle一样,但它是用C实现的,所以它可以更快。你应该使用cPickle。