3. Python使用shelve模块实现变量保存和加载恢复

文章介绍了Python的Shelve模odule,用于将对象保存到二进制文件中。通过open函数创建shelf对象,对数据进行操作,并在完成时调用close函数保存至磁盘。示例展示了如何保存和加载全局及局部变量,包括列表等复杂数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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'])

输出如下:
在这里插入图片描述

持续更新中,请大家多多关注…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山间点烟雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值