在Google Colaboratory中保留数据

use*_*705 13 python google-colaboratory

有没有人想出办法让谷歌新开源的Colaboratory会话中的文件保持不变?

使用示例笔记本,我成功地从我的Google Drive实例中验证和传输csv文件,并将它们存储在/ tmp,my~和〜/ datalab中.熊猫也可以通过磁盘读取它们.但是一旦会话超时,看起来整个文件系统都被擦除,新的虚拟机就会被刷新,没有下载的文件.

鉴于Google的Colaboratory Faq,我想这并不奇怪:

问:我的代码在哪里执行?如果我关闭浏览器窗口,我的执行状态会发生什么?

答:代码在专用于您帐户的虚拟机中执行.闲置一段时间后,虚拟机会被回收,并且系统会强制执行最长生命周期.

鉴于此,也许这是一个功能(即"使用谷歌云存储,它在Colaboratory中运行良好")?当我第一次使用的工具,我希望这是在任何的.csv文件,我的文件/ Colab笔记本谷歌云端硬盘文件夹会也加载到虚拟机实例,笔记本电脑正在运行上:/

Mar*_*iro 25

把它放在你的代码之前,所以在运行你的代码之前总是会下载你的文件。

!wget -q http://www.yoursite.com/file.csv
Run Code Online (Sandbox Code Playgroud)

  • 这适用于 Google 云端硬盘文件吗? (3认同)

Bob*_*ith 8

你的解释是正确的.虚拟机是短暂的并且在不活动期间被回收.目前,VM本身没有持久数据机制.

为了使数据持久存在,您需要将其存储在VM之外的某个位置,例如Drive,GCS或任何其他云托管提供商.

I/O示例笔记本中提供了一些用于从外部源加载和保存数据的配方.


小智 8

为您的 Google 云端硬盘中的文件添加此内容:

from google.colab import drive
drive.mount('/mnt/drive')
Run Code Online (Sandbox Code Playgroud)

运行后,您将看到它安装在文件选项卡中,您可以这样访问您的文件:

import pandas as pd
pd.read_csv('/mnt/drive/MyDrive/<your folder inside Google Drive>/file.csv')
Run Code Online (Sandbox Code Playgroud)

请注意,第一次执行drive.mount将导致 Colab 请求许可(“允许此笔记本访问您的 Google 云端硬盘文件吗?”)。如果您同意,则 Google 桌面应用程序将有权访问您的所有 Google 云端硬盘文件(包括个人照片等)。请不要与任何人分享此 Colab 笔记本!