我在Matlab中编写了一些代码,其中脚本中执行的变量范围保留在“工作空间”中。我正在处理的数据非常大,因此每次执行脚本需要20-30分钟才能产生必要的结果。 Matlab的优点是在执行之后,如果我想在脚本末尾添加代码,我可以将它执行到结果变量,而不是必须从头开始重新运行代码。
如何在Python中执行类似的操作,从一个脚本执行到下一个脚本执行保留变量的值?
答案 0 :(得分:1)
答案 1 :(得分:1)
你真的想要运行一个交互式python shell。这就是你在MATLAB中所做的,所有脚本都在同一个MATLAB shell中运行。这就是变量在运行中持续存在的原因,因为shell正在保留它们。
与python的不同之处在于它有两种运行脚本的方法:在python shell或standalone中。你在python中独立运行它们,这不是MATLAB中的一个选项。
如果你想要在MATLAB中尽可能接近你所做的事情,只需将脚本中的代码包装在一个函数中,启动一个python shell,然后运行该函数。
然而,对于长时间运行的重复代码而言,这通常不是最佳方法,就像您正在做的那样。更好的方法是使用IPython / Jupyter笔记本。此界面允许您有选择地运行部分代码,重新组织部件以及许多其他有用的功能。它还具有一项功能,允许您跨会话自动保留特定变量。
答案 2 :(得分:0)
如果我理解正确的话。
我认为最好的选择是直接使用python shell而无需在文件中编写脚本然后运行它。
第二选择是酸洗或对象序列化:
“Pickling”是Python对象层次结构的过程 转换为字节流,“unpickling”是反向的 操作,从而将字节流转换回对象 层次结构。