在Python脚本的运行之间保持持久变量存储在内存中。
- 论坛
- 在Python脚本的运行之间保持持久变量存储在内存中。
10 浏览
在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做我想要的事情,有什么技巧吗?有其他的想法吗?