3

我对python有点陌生,我正在制作一个用户名+密码登录系统来玩。我正在使用字典来存储用户名+密码。我将这样做,以便您可以将帐户添加到字典中,并且我想要一些方法来保存字典以供下次程序运行时使用。我该怎么做?

4

5 回答 5

7

持久化数据有很多选择,一种简单的方法是使用shelve

您可以使用以下方式保存数据:

>>> import shelve
>>> data = {'foo':'foo value'}
>>> d = shelve.open('myfile.db')
>>> d['data'] = data
>>> d.close() 

然后您可以轻松恢复数据:

>>> import shelve
>>> d = shelve.open('myfile.db')
>>> data = d['data']
>>> d.close() 

其他选项正在使用filesCPickle数据库SQLite,如 MySQL 等

于 2013-06-18T21:27:33.977 回答
2

根据您的需要,您可以将信息保存到文本文件或使用数据库。保存到文本文件不需要任何编码,但是 python 的两种流行格式/库是jsonpickle。如果您想使用数据库,我建议您查看 mysql 或 sqlite。

于 2013-06-18T21:29:42.500 回答
0

shelve正如 jabaldonedo 所建议的那样,该模块是字典的替代品。但是,当您的值都是字符串时,甚至shelve是矫枉过正;你可以使用dbm.

无论哪种方式,您只需要更改一行:

d = {} # in-memory, non-persistent dict
d = shelve.open('passwd.db', 'c') # persistent dict that can store anything
d = dbm.open('passwd.db', 'c') # persistent dict that only stores strings

dbm 的优点是您可以使用其他工具来读取(和编辑)数据库。例如,如果您这样做:

d['abc'] = 'def'

有了dbm,数据库将保存字符串'def'。与shelve,它将持有类似的东西'\x80\x03X\x03\x00\x00\x00defq\x00.'

于 2013-06-18T21:33:57.723 回答
0

了解如何在 python 中读取和写入文件,只需将用户名和密码存储在文本文件中。

于 2013-06-18T21:27:32.570 回答
0

有很多选择。您可以从了解原生 Python 的输入和输出的工作原理开始。

然后你可以试试sqlite

最后使用适当的数据库(MySQL、PostgreSQL、MongoDB 等)。

于 2013-06-18T21:28:10.117 回答