python中将字典存入txt文件与还原

python中将字典存入txt文件与还原


随意在字典D1内存入一些信息,并打印

D1 = {}
D1['123123'] = ['张三','李四','王五']
D1['456456'] = ['男','女','woman','man']
print(D1)

打印结果为:
{‘123123’: [‘张三’, ‘李四’, ‘王五’], ‘456456’: [‘男’, ‘女’, ‘woman’, ‘man’]}

把字典中的键和值按行写入到txt文件中,第一行为键,第二行为值,这样的顺序写入,最后记得关闭文件。

path = r'E:\python作业\xinxi.txt'	#文件路径
f = open(path,'w',encoding='utf-8')		#以'w'方式打开文件
for k,v in D1.items():			# 遍历字典中的键值
    s2 = str(v)                 # 把字典的值转换成字符型
    f.write(k+'\n')             # 键和值分行放,键在单数行,值在双数行
    f.write(s2+'\n')			
f.close()						# 关闭文件

下面是读取txt文件中的内容存入字典的操作。因为字典中的值是列表,把它写入txt文件中要转换成字符型,所以会有中括号和单引号,用readlines函数读取内容还会有\n,我们就需要把这些都去掉,然后用split函数转换成列表。把取出来的键和值分别存放在两个列表中,然后用下标把列表中的内容存入字典D2中,具体操作如下。

f = open(path,'r',encoding='utf-8')
information = f.readlines()     # 用readlines()函数读取txt文件中的内容,返回值为列表
L1 = []                         # 用来接收键的列表
L2 = []                         # 用来接收值的列表
D2 = {}                         # 用来存放文件中读取出的内容
for i in range(len(information)):
    if i % 2 == 0:          # 列表下标是从0开始,所以双数行是键,单数行是值
        s1 = information[i][0:-1]   #readlines()函数读取文件会有\n,切片切掉
        L1.append(s1)       # 把所有的键存在L1列表中
    else:
        s2 = information[i]
        s2 = s2[1:-2]       # 切掉列表转换成字符串后左右的中括号
        s2 = s2.replace('\'', '').replace(' ','')   # 把字符串中的单引号和空格去掉
        L3 = s2.split(',')      # 把字符串以逗号隔开变成列表,还原成原字典中的值
        L2.append(L3)       # 把值都存在列表L2中
for n in range(len(L1)):
    D2[L1[n]] = L2[n]        # 以L1中的值为键,L2中的值为值存回字典中
f.close()
print(D2)

打印结果为:
{‘123123’: [‘张三’, ‘李四’, ‘王五’], ‘456456’: [‘男’, ‘女’, ‘woman’, ‘man’]}

与D1打印结果一模一样,字典写入txt并还原的操作就完成了。

你可能感兴趣的:(python中将字典存入txt文件与还原)