python - 如何使用共享网址和命令行从 Google Colab 获取 "raw"ipynb 文件?

标签 python command-line download google-colaboratory

为 Google Colab 获取的“共享网址”链接到一个包含大量额外 HTML 的文件,因此当您尝试使用 wget 或 curl 下载该文件时,您不会获得有效的 Jupyter .ipynb 文件。

如何使用 wget 或 curl 等命令行工具获取文件本身? (注意:我说的是“公共(public)”共享 URL,其中“任何知道该 URL 的人都可以查看”。我宁愿不必使用可能需要身份验证等的专门 google-drive 命令行 API 工具。)

GitHub has a "raw" button您可以按 ,这会给您一个用于下载 Jupyter 笔记本文件的有效 URL,但我在 Colab 中没有看到任何此类内容。也许可以在 URL 中添加某种“?form=raw”内容?

或者,是否有推荐的脚本来删除所有额外的 HTML,只留下 .ipynb 文件的 JSON?

澄清:我不是在谈论在 Colab 内手动移动鼠标并单击“文件 > 下载 > 下载 ipynb”;这很容易!我说的是使用“共享 URL”以编程方式获取文件。

最佳答案

已解决,通过this post :您只需从网址中提取“文件 ID”即可!

如果分享网址是 https://colab.research.google.com/drive/1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX?usp=sharing

那么 fileid 就是“drive/”和问号之间的所有内容。

一个 bash 的小例子...

$ export fileid=1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX
$ wget -O downloaded_file.ipynb 'https://docs.google.com/uc?export=download&id='$fileid

...结果是 download_file.ipynb 中的有效 Jupyter 文件。 :-)

将所有这些放在方便的地方 bash函数可以如下所示:

grabcolab() { fileid=$( echo "$1" | sed -E 's/.*drive\/(.*)\?.*/\1/' ); wget -O colab.ipynb 'https://docs.google.com/uc?export=download&id='$fileid; }

然后我们只需运行 grabcolab <sharing url>如:

grabcolab https://colab.research.google.com/drive/1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX?usp=sharing

PS- 偏离主题,但如果您想从命令行运行笔记本,jupytext (可通过 pip install jupytext 安装)对我来说比 jupyter notebook --to-script 好一点,所以我用来运行笔记本的是

nbrun() { jupyter nbconvert --to script "$1";  mv  "${1%.*}".py run_this.ipy; ipython run_this.ipy;}

$ grabcolab https://colab.research.google.com/drive/1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX?usp=sharing
$ nbrun colab.ipynb

关于python - 如何使用共享网址和命令行从 Google Colab 获取 "raw"ipynb 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66769956/

相关文章:

python - 查找最大的文件并删除文件夹

powershell - 在Windows命令提示符/PowerShell中下载大文件

javascript - 如何使用 Ionic Framework 下载文件到 Download 目录?

PHP创建多个Word文档并允许下载

python - 比较分组数据帧的值

python - Keras CNN 仅预测单个类别

python - Keras:训练损失减少(准确度增加)而验证损失增加(准确度降低)

linux - 将文件名作为列添加到 csv 文件中

java - 从 Java 应用程序打开命令行

javascript - 如何在 jQuery 中制作图像链接列表?