>用户名
> ip-address
>游戏中的位置
>来自该IP或来自该用户名的备用IP地址的备用用户名的列表
之前我读过一篇文章说,除非我正在存储大量不能在ram中保存的信息,否则我不应该使用数据库.所以我尝试在python中使用shelve模块,但我不知道这是否是一个好主意.
你什么时候会认为使用数据库是一个好主意,如果更好地以另一种方式存储信息,还有一些其他方法可以存储除数据库和平面文件数据库之外的信息.
解决方法
如果您的数据结构非常(您知道sql或愿意学习),那么使用像sqlite3这样的数据库可能是合适的. (您应该忽略关于数据库大小和RAM的注释:有时数据库适用于甚至非常小的数据集,因为数据的结构如何).
如果数据相对简单,并且不需要数据库(通常)具有的可靠性,然后将其存储在其中一个内置数据类型中,而程序运行则可能很好.
如果您希望存储在磁盘上的数据具有人性化的可读性(可编辑性,但需要付出努力),那么像JSON这样的格式(有内置的json模块)是很好的,因为基本的Python对象没有任何努力.如果数据不是这么简单,那么YAML本质上是一个扩展版本的JSON(PyYAML是非常好的).同样的,您可以使用CSV文件(csv模块),尽管这不及JSON或YAML,或只是一种自定义的文本格式(但是这是非常大的努力来获得错误处理等等) .
最后,如果您的数据包含更高级的对象(例如递归字典或复杂的自定义数据类型),那么使用内置的二进制序列化技术(pickle,shelve等)可能是适当的,但是YAML可以处理这些事情(包括递归数据结构).
一般要点:
>纯文本格式很好,因为它们允许调整值很容易调试/测试很容易>二进制格式是很好的,因为它们的意思是,值不能被调整没有一点额外的努力(这不是说,他们不能调整),而文件大小较小(可能不相关)