我有一个问题,改变dict值和保存dict到一个文本文件(格式必须相同),我只想改变member_phone字段。

我的文本文件格式如下:

memberID:member_name:member_email:member_phone

我将文本文件拆分为:

mdict={}
for line in file:
    x=line.split(':')
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e

当我尝试更改存储在d中的member_phone时,值已更改,而不是由键流,

def change(mdict,b,c,d,e):
    a=input('ID')
    if a in mdict:
        d= str(input('phone'))
        mdict[a]=b+':'+c+':'+d
    else:
        print('not')

如何将字典保存为相同格式的文本文件?


当前回答

保存并加载dict到文件:

def save_dict_to_file(dic):
    f = open('dict.txt','w')
    f.write(str(dic))
    f.close()

def load_dict_from_file():
    f = open('dict.txt','r')
    data=f.read()
    f.close()
    return eval(data)

其他回答

Pickle可能是最好的选择,但如果有人想知道如何使用NumPy保存和加载字典到文件:

import numpy as np

# Save
dictionary = {'hello':'world'}
np.save('my_file.npy', dictionary) 

# Load
read_dictionary = np.load('my_file.npy',allow_pickle='TRUE').item()
print(read_dictionary['hello']) # displays "world"

供参考:NPY文件查看器

我建议使用JSON格式而不是pickle格式保存数据,因为JSON的文件是人类可读的,这使得您的调试更容易,因为您的数据很小。JSON文件也被其他程序用来读取和写入数据。你可以在这里阅读更多信息

你需要安装JSON模块,你可以用pip:

pip install json


# To save the dictionary into a file:
json.dump( data, open( "myfile.json", 'w' ) )

这将创建一个名为myfile的json文件。

# To read data from file:
data = json.load( open( "myfile.json" ) )

读取并存储myfile。数据对象中的Json数据。

保存并加载dict到文件:

def save_dict_to_file(dic):
    f = open('dict.txt','w')
    f.write(str(dic))
    f.close()

def load_dict_from_file():
    f = open('dict.txt','r')
    data=f.read()
    f.close()
    return eval(data)

我不知道你的第一个问题是什么,但如果你想保存一个字典到文件,你应该使用json库。查找加载和放置函数的文档。

我还没有计时,但我打赌h5比pickle快;压缩后的文件大小几乎肯定更小。

import deepdish as dd
dd.io.save(filename, {'dict1': dict1, 'dict2': dict2}, compression=('blosc', 9))