Python - 在程序之外保存数据

时间:2013-06-18 21:24:06

标签: python

我对python有些新手,我正在制作用户名+密码登录系统以获得乐趣。我使用字典来存储用户名+密码。我打算这样做你可以在字典中添加一个帐户,我想要一些方法来保存字典,以便下次程序运行。我该怎么做?

5 个答案:

答案 0 :(得分:6)

持久化数据有很多选项,一种简单的方法是使用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等

答案 1 :(得分:2)

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

答案 2 :(得分:0)

了解如何在python中读写Files,并将用户名和密码存储在文本文件中。

答案 3 :(得分:0)

有很多选择。您可以从学习本机Python的input and output如何工作开始。

然后你可以尝试sqlite

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

答案 4 :(得分:0)

jabaldonedo建议的shelve模块是字典的替代品。但是,当您的值都是字符串时,即使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.'

之类的内容