在Python中使用pickle保存字典

use*_*061 3 python pickle

我有一个文件hash_db.pickle,当我创建它时,我在上面保存了一本字典:

v = {hash_value:{"file name":file_name,"file size":file_size,"last scanned time":scanned_time}}

{123dfre345:{"file name":calc.pdf,"file size":234,"last scanned time":12:23 24/12/2013}}
{3gcdshj754:{"file name":star.pdf,"file size":10,"last scanned time":10:30 10/10/2013}}
Run Code Online (Sandbox Code Playgroud)

last scanned time所以如果我只想从文件中更改3gcdshj754

我怎么能那样做呢?

mu *_*u 無 5

使用pickle很简单,写的时候使用

dct = {'3gcdshj754': {'file name': 'star.pdf', 'last scanned time': '10:30 10/10/2014', 'file size': '10'}}

import pickle
pickle.dump(dct, open("save.p", "wb"))
Run Code Online (Sandbox Code Playgroud)

然后,在阅读时,使用

import pickle
dct_read = pickle.load(open("save.p", "rb"))
Run Code Online (Sandbox Code Playgroud)

b请注意,无论何时,您都必须以二进制模式( flag )打开文件。

编辑内容现在很简单:

dct_read.values()[0]["last scanned time"] = '10:10 10/10/2010'
Run Code Online (Sandbox Code Playgroud)

或者,正如 @mhawke 在他的回答中建议的那样,您可以使用shelve