如何在Spyder中从本地工作区调用变量到新Python脚本?
在Spyder中复用工作区变量的几种实用方法
不用每次重新生成耗时数据,这几个方法能直接调用已有工作区的变量:
方法1:用Spyder变量浏览器导出/导入
- 打开生成数据后的Spyder变量浏览器,找到要复用的变量(比如
array2) - 右键点击变量,选择「Save as...」,保存为
.npy(适合numpy数组)或.pkl(适合任意Python对象)格式的文件 - 在新脚本中加载:
- 若保存为.npy:
import numpy as np; array1 = np.load('array2.npy') - 若保存为.pkl:
import pickle; with open('array2.pkl', 'rb') as f: array1 = pickle.load(f)
- 若保存为.npy:
方法2:在生成脚本末尾主动保存变量
直接修改生成数据的脚本,在计算完成后添加保存代码,下次新脚本直接加载:
# 生成数据的脚本最后添加 import numpy as np # 保存numpy数组 np.save('my_data.npy', array2) # 如果是其他对象(比如字典、自定义类),用pickle import pickle with open('my_data.pkl', 'wb') as f: pickle.dump(array2, f)
新脚本里用方法1的加载代码读取即可。
方法3:用Spyder的魔法命令加载整个工作区
如果不想保存文件,直接在新脚本的开头运行:
%run -i 你的生成数据脚本.py
这个命令会执行生成数据的脚本,并且把脚本里的所有变量直接加载到当前新脚本的工作区,之后你就可以直接用array1 = array2这类代码调用变量了。
注意事项
.npy文件只支持numpy数组,体积小、加载快;.pkl支持所有Python对象,但要注意版本兼容性%run -i会重新执行生成脚本,不过如果生成脚本里加个判断逻辑(比如检查数据文件是否存在,存在就跳过生成),就能彻底避免重复计算
内容的提问来源于stack exchange,提问作者Alexis
相关产品推荐
相关产品推荐

