python_数据持久化_shelve

import shelve

#shelve提供一个open方法,接受一个文件作为参数。
f=shelve.open('ceshi.text')  #拿到一个shelve句柄,同时给shelve传入一个文件作为参数

#写入信息
f['info'] = {'name':'chris','age':18}  #'info'相当于一个键,它的值就是后面保存的字典

#将保存的信息读取
#第一种,直接输出所有内容
print(f['info'])

date = f['info']
print(date)



#第二种,可以取具体某个值。因为键'info'保存的值是一个字典,而f['info']自身又是一个字典,它的值就是保存的字典。

val=f['info']['name']
print(val)                 #获取具体的'name'的一个值




#shelve不仅仅限于可以保存字典,其他类型的数据都能保存。
f = shelve.open('test.txt')
f['list'] = [1,2,3]                   #保存列表
lis = f['list']
print(lis)





#关于获取shelve数据内容,shelve提供了一个get方法。
date1 = f.get('info')           #用get获取‘info’数据
print(date1)
date2 = f.get('lis')             #获取‘lis’的数据
print(date2)

#关于get还有有个小方法,当要获取的数据不存在时,会报错,此时在后面传入一个提示信息就不会报错,并返回这个提示信息。

date3 = f.get('inf',"数据不存在")
print(date3)
#当“inf”不存在时,不会报错,而是返回后面的“数据不存在”这个提示信息。

 

import shelve

#shelve提供一个open方法,接受一个文件作为参数。
f=shelve.open('temp/bbb')  #拿到一个shelve句柄,同时给shelve传入一个文件作为参数

#关于获取shelve数据内容,shelve提供了一个get方法。
date1 = f.get('info')['age']          #用get获取‘info’数据
print(date1)
date2 = f.get('info')             #获取‘lis’的数据
print(date2)
date3 = f.get('info',"数据不存在")
print(date3)


import shelve
d=shelve.open(r'a.txt',writeback=True)    #writeback=True,对子字典修改完后要写回,否则不会看到修改后的结果
d['egon']={'age':18,'sex':'male'}         #存的时候会生成三个文件,不用管,是python的一种处理机制
d['egon']['age']=20                       #将年龄修改为20
print(d['egon']['age'])                   #此时拿到的是修改后的年龄
print(d['egon']['sex'])
d.close()

 

posted @ 2020-02-17 21:33  做梦者造梦  阅读(243)  评论(0)    收藏  举报