如何在当前python会话中保存所有变量?
我想将所有变量保存在当前的python环境中。似乎一种选择是使用“棘手”模块。但是,我不想这样做有两个原因:
- 我必须要求
pickle.dump()
每个变量 - 当我想检索变量时,必须记住保存变量的顺序,然后执行a
pickle.load()
来检索每个变量。
我正在寻找可以保存整个会话的命令,以便在加载此保存的会话时,将还原所有变量。这可能吗?
编辑:我想我不介意调用pickle.dump()
我想保存的每个变量,但是记住变量保存的确切顺序似乎是一个很大的限制。我想避免这种情况。
回答:
如果使用shelve,则不必记住对象的腌制顺序,因为shelve
它会为您提供类似于字典的对象:
搁置您的工作:
import shelveT='Hiya'
val=[1,2,3]
filename='/tmp/shelve.out'
my_shelf = shelve.open(filename,'n') # 'n' for new
for key in dir():
try:
my_shelf[key] = globals()[key]
except TypeError:
#
# __builtins__, my_shelf, and imported modules can not be shelved.
#
print('ERROR shelving: {0}'.format(key))
my_shelf.close()
恢复:
my_shelf = shelve.open(filename)for key in my_shelf:
globals()[key]=my_shelf[key]
my_shelf.close()
print(T)
# Hiya
print(val)
# [1, 2, 3]
以上是 如何在当前python会话中保存所有变量? 的全部内容, 来源链接: utcz.com/qa/398815.html