如何在不同Colab notebook中访问、共享数据集与变量
Colab跨文件访问变量与数据集的可行方案
下面是3种实操性最高的实现方式,无需额外第三方工具:
方法1:通过Google Drive挂载持久化存储(最常用,适合大体积数据集/变量)
这个方案可以实现长期共享,不受Colab运行时重启、页面关闭影响:
- 首先在存变量/数据集的源Colab文件中挂载你的Google Drive
from google.colab import drive drive.mount('/content/drive')
- 把需要共享的内容导出到Drive的指定目录,不同类型内容可以选择对应存储方式:
- 结构化数据集可以用pandas自带的存储方法,示例:
import pandas as pd # df为你要共享的数据集 df.to_csv('/content/drive/MyDrive/colab_shared/data.csv', index=False)- 普通Python变量可以用pickle批量存储,示例:
import pickle # 把需要共享的var1、var2、自定义模型等变量打包存储 with open('/content/drive/MyDrive/colab_shared/shared_vars.pkl', 'wb') as f: pickle.dump([var1, var2, custom_model], f) - 切换到要绘图的目标Colab文件,同样挂载Drive后直接读取对应路径的文件即可:
import pandas as pd import pickle # 读取数据集 df = pd.read_csv('/content/drive/MyDrive/colab_shared/data.csv') # 读取打包存储的变量 with open('/content/drive/MyDrive/colab_shared/shared_vars.pkl', 'rb') as f: var1, var2, custom_model = pickle.load(f)
方法2:使用%store魔术命令(适合同会话下临时共享小变量)
无需挂载Drive,适合快速共享小体积变量:
- 在源Colab文件中执行存储命令:
%store target_variable %store df_dataset
- 在目标Colab文件中执行读取命令即可直接调用变量:
%store -r target_variable %store -r df_dataset
注意:该方法仅在同浏览器会话、Colab运行时未重置的情况下生效,运行时重启或者关闭页面后存储的变量会自动失效。
方法3:导入源Notebook导出的py文件
如果源Colab的变量是运行代码生成的,无需提前存储也可以实现共享:
- 打开源Colab文件,点击「文件」>「下载」>「下载 .py 文件」
- 将下载的py文件上传到目标Colab的
/content工作目录,直接导入即可调用其中的变量:
from source_file import var1, df_dataset
注意:导入py文件时会自动运行文件内所有代码,如果源文件代码运行耗时久、有交互步骤,不推荐使用该方法。
内容的提问来源于stack exchange,提问作者Egidius
相关产品推荐
相关产品推荐

