在Python脚本的运行之间保持持久变量存储在内存中。

10 浏览
0 Comments

在Python脚本的运行之间保持持久变量存储在内存中。

有没有办法将结果变量保存在内存中,这样每次运行脚本时就不必重新计算它?

每次运行脚本时,我都会在一个数据集上执行一系列耗时长(5-10秒)的操作(从磁盘中读取)。虽然我很擅长在运行之间使用交互式编辑器来调试代码,但有时交互能力不够。

我知道我可以将结果写入磁盘上的文件,但如果可能的话,我想避免这样做。这样的解决方案应该是在第一次运行脚本时生成一个变量,并将其保存在内存中,直到关闭shell或显式地将其清除为止。类似这样:

# 检查变量是否已在此会话中创建
in_mem = var_in_memory() # 如果尚未保存在内存中,则返回变量的指针;否则返回False
if not in_mem:
    # 从磁盘读取数据集
    with open('mydata', 'r') as in_handle:
        mytext = in_handle.read()
    # 从数据集中提取相关结果
    mydata = parse_data(mytext)
    result = initial_operations(mydata)
    in_mem = store_persistent(result)

我对shelve模块有点了解,它可能是我在这里寻找的东西,但是看起来为了打开一个shelve变量,我必须指定一个持久对象的文件名,所以我不确定它是否完全符合我的要求。

关于如何让shelve做我想要的事情,有什么技巧吗?有其他的想法吗?

0