簡體   English   中英

Python - 如何在文本文件中制作字典?

[英]Python - How do I make a dictionary inside of a text file?

我正在編寫一個允許用戶創建用戶名和密碼的程序。 如何將其作為字典寫入文本文件,然后在需要時檢索它? 此外,如果有更簡單的方法可以做到這一點,我歡迎任何新想法。

使用 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 的“為什么 Python Pickle 不安全”

我會使用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)

檢查泡菜 這是一種將對象序列化為文件,然后檢索它的方法。

另請查看shelve ,它會給您對序列化的更抽象的感覺。

>>> 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM