1. 说明:
Shelve模块是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的。使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作、并且将内存存储到磁盘中,最后调用close函数便会将数据写入文件。
2. 变量保存操作:
import shelve
filename = './shelve.out'
my_shelf = shelve.open(filename, 'n') # 不存在的情况下会自动生成对应名称的新文件
# 全局变量
T = 'Hiya'
val = [1, 2, 3]
for i in range(3):
num = 0 # 全局变量(python当中除了函数内部的变量是局部的,其他都是全局变量)
if i == 2:
num += i
def testVar():
val2 = [] # 函数内的局部变量
for j in range(4):
val2.append(j)
my_shelf['val2'] = val2 # 函数里面的变量手动添加
if __name__ == '__main__':
testVar()
# 除函数内的局部变量外,其它变量自动寻找添加
for key in dir():
try:
my_shelf[key] = globals()[key]
except TypeError:
print('ERROR shelving: {0}'.format(key))
my_shelf.close()
3. 变量加载恢复:
import shelve
filename = './shelve.out'
my_shelf = shelve.open(filename)
# 打开的my_shelf实际上是一个字典类型
print('T = ', my_shelf['T'])
print('val = ', my_shelf['val'])
print('num = ', my_shelf['num'])
print('val2 = ', my_shelf['val2'])
输出如下: