如何下载在 Colaboratory 工作区中创建的文件?

Posted

技术标签:

【中文标题】如何下载在 Colaboratory 工作区中创建的文件?【英文标题】:How to download file created in Colaboratory workspace? 【发布时间】:2018-07-24 06:21:01 【问题描述】:

我发现了很多关于如何将数据上传到Colaboratory的提示。

但现在我想做相反的事情 -> 我想下载我在 Colaboratory 工作区中创建的 .csv。

如何做到这一点?

【问题讨论】:

【参考方案1】:

使用文件colab lib

from google.colab import files
files.download('example.txt') 

PS:使用chrome浏览器

【讨论】:

另外,请注意您需要启用第三方 cookie。相关问题here 刚刚在 Ubuntu 上使用 Firefox 74.0 进行了测试——也可以使用 我刚刚发现这适用于 Chrome,但不适用于 Safari。为两者启用 Cookie【参考方案2】:

您可以使用文件管理器面板。

使用查看 > 目录显示侧边栏,然后单击文件选项卡。 右键单击文件并选择下载

注意:这个过程是不寻常的,因为下载进度没有在浏览器中以通常的方式显示。相反,它在 Colab 中由文件旁边的橙色圆圈显示。只有下载完成后才会出现在浏览器下载中。

在 Firefox 中,最好在下载过程中将选项卡置于前台,否则可能会失败。

【讨论】:

点击查看 --> 目录 --> 文件 做到了。该文件无处可寻,不在我的 firefox 的默认下载目录中,也不在我的主目录下的任何地方,不在下载中,也不在其他任何地方。该文件也不在 firefox bin 目录或 lib 目录中。除了想象它应该如何工作之外,有没有人真正使用过它。如果是这样,请与我们分享文件的去向。 @GeoffreyAnderson 它在 Firefox 上存在问题(正如您现在对 Google 所期望的那样)。据我所知,如果在文件名右侧的下载进度圈完成时将焦点保持在该选项卡中,它会起作用。您不必在整个下载过程中都在标签中,但如果在下载完成时您在另一个标签中,下载不会发生,它只会消失在以太中。 外观现在不同了。没有标有“文件”的菜单。相反,打开目录并单击左边距下方的类似文件夹的按钮。看/content 正如@nealmcb 所说,但我发现下载的行为没有改变。下载后,您仍然需要将注意力集中在标签上,否则它就会消失。【参考方案3】:

你需要添加这两行:

from google.colab import files
files.download('file.txt')

如果您使用的是 firefox,那么这可能不起作用。 为了使这项工作:

    从 google.colab 导入文件 在下一个单元格中,打印任何内容,例如 print('foo')。 打印后,擦除打印行并替换为:files.download('file.txt')

现在,它将下载。这是我同事告诉我的一个 hacky 解决方案。我不知道为什么它有效!如果您知道原因,请发表评论。

有一种更清洁、更简单的方法可以在 Firefox 和 chrome 中使用。

单击 > 图标。单击文件。它将显示笔记本中的所有文件和文件夹。左键单击要下载的文件,选择下载,一切顺利。此过程也可以应用于上传文件/文件夹。要上传文件夹,您必须先将其压缩。

【讨论】:

“如果您使用的是 Firefox,那么这将不起作用” 这在 Firefox 86.0 中对我有用。【参考方案4】:

使用 Pydrive 将其保存到谷歌驱动器

# Install the PyDrive wrapper & import libraries.
# This only needs to be done once in a notebook.
!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# Authenticate and create the PyDrive client.
# This only needs to be done once in a notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# Create & upload a file.
uploaded = drive.CreateFile('title': 'filename.csv')
uploaded.SetContentFile('filename.csv')
uploaded.Upload()
print('Uploaded file with ID '.format(uploaded.get('id')))

【讨论】:

保存到 GoogleDrive 不是问题,而是直接下载到本地机器 是否也可以在GoogleDrive中指定一个目录来上传文件? 对于来自 Google 的用户:继续向下滚动。最好的解决方案在底部。 您可以直接将您的 Google Drive 挂载到 Colab Workspace。另外,这允许批量下载:似乎只能从 Colab 中逐个下载文件,但是如果您先将它们保存到 Google Drive,则可以从那里批量下载。【参考方案5】:

这里有一个extensive tutorial,介绍如何在 Google Colab 中处理文件。 如果您只想将数据保存为csv 并下载到本地:

from google.colab import files

# e.g. save pandas output as csv
dataframe.to_csv('example.csv')

# or any other file as usual
# with open('example.csv', 'w') as f:
#   f.write('your strings here')

files.download('example.csv')

【讨论】:

【参考方案6】:

在 Firefox 中从 colab 下载 csv 时遇到了同样的问题。 这是一个快速的解决方法(每次都对我有用,而且很奇怪)。

假设我保存了一个这样的 csv -

from google.colab import files
submission.to_csv('./submission.csv', sep = ',', index = False)

要下载这个我先做- 尝试下载一些甚至不存在的文件,以便 colab 给出错误

files.download('submission111111.csv')

然后运行

files.download('submission.csv')

这是要下载的实际文件。 它每次都对我有用,我忍不住笑着找到这个奇怪的把戏。

【讨论】:

【参考方案7】:

试试这个 ipython 函数。 !mkdir data && wget http://file_url/file_name.zip && unzip file.zip -d data/

【讨论】:

这是做错事了。 OP 明确希望将文件从 colab 获取到家用计算机,而不是从 Internet 获取文件到 colab。【参考方案8】:

将文件和文件夹移动到 Google 云端硬盘

    安装谷歌驱动器 - 按照屏幕上输出的说明进行操作:
from google.colab import drive
drive.mount('/content/drive')

完成此步骤后,您将在侧边栏文件管理器中看到名为 drive 的额外文件夹

    通过使用侧边栏的拖放方法或使用此命令复制文件(注意,需要确保已安装的驱动器上存在指定的文件夹结构):
# Copying folders, format: !rsync -r --progress source_path destination_path
!rsync -r --progress "./model" "/content/drive/My Drive/Colab Notebooks/my-project/model" 

您也可以使用相同的命令将文件从 Google Drive 移动到笔记本环境,这是在运行时断开连接时备份状态的便捷方式。

【讨论】:

以上是关于如何下载在 Colaboratory 工作区中创建的文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中创建服务?

如何在 xcode 6 beta 中创建扩展?

MAVEN如何在Eclipse中创建MAVEN项目

在 datagrip 中创建本地数据库

如何在 C# 中创建一个简单的代理?

如何在PHP中创建Outlook日历会议请求?