Python - 如何在文本文件中创建字典?

时间:2011-07-03 14:06:33

标签: python file dictionary

我正在编写一个允许用户创建用户名和密码的程序。如何将其作为字典写入文本文件,然后在需要时检索它?此外,如果有更简单的方法,我欢迎任何新的想法。

4 个答案:

答案 0 :(得分:7)

使用Python序列化机制 - pickle

小例子:

>>> import pickle
>>> s = pickle.dumps({'username': 'admin', 'password': '123'})
>>> s
"(dp0\nS'username'\np1\nS'admin'\np2\nsS'password'\np3\nS'123'\np4\ns."

现在,您可以轻松地将s的内容保存到某个文件中。之后,您可以阅读并解码:

>>> pickle.loads(s)
{'username': 'admin', 'password': '123'}

但这种做法并不十分安全。请勿将其用于您所依赖的危险数据或数据。

Nadia Alramli查看"Why Python Pickle is Insecure"

答案 1 :(得分:6)

我会使用json。这对于那种事情来说非常棒,而且自2.6以来就在标准库中。

import json

# write settings
with open('settings.json', 'w') as f:
    f.write(json.dumps(settings))

# load settings1
with open('settings.json', 'r') as f:
    settings = json.load(f)

答案 2 :(得分:2)

结帐pickle。这是一种将对象序列化为文件然后检索它的方法。

同时查看shelve,这会让您对序列化有更抽象的感觉。

答案 3 :(得分:1)

>>> f = open('pass_file','w')
>>> d = {"name":"my_name", "pass":"my_pass"}
>>> import pickle
>>> pickle.dump(d, f)
>>> f.close()


>>> import pickle
>>> f = open('pass_file', 'r')
>>> d = pickle.load(f)
>>> d
{'name': 'my_name', 'pass': 'my_pass'}
>>>

还有一个名为cPickle的更快版本。