防止Python shelve文件损坏

4

如何防止 shelve 文件损坏?是否应该大部分时间关闭 shelve,只有在需要读取或编辑值时才打开?


2
不要使用shelve,它会损坏数据。我建议使用sqlite。 - nosklo
@nosklo同意,它并不特别可靠,其使用因平台而异。 - Rafe Kettler
1个回答

6
如果在您的项目中持久对象的安全性很重要,那么使用 shelve 不是一个好主意。手动将对象进行pickling并将其写入文件也不行。
请考虑到,真正的数据库投入了大量资源(人力和代码)来确保在故障情况下安全。因此,请将数据保存在真正的数据库中。最简单的方法是使用sqlite,因为它与Python捆绑在一起。 sqlite非常安全,并且具有许多关于保持数据处于某种有效状态的智能功能,即使系统发生故障(例如当有人绊倒您PC的电源电缆时)。

2
@metaguppy:shove看起来是一种有趣的方法,它是其他工具(如sqlite和其他数据库)的前端。我会考虑使用它,但由于它不太出名,我不会在没有进行严格测试和研究的情况下将我的最重要的数据放入其中。 - Eli Bendersky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接