如何使用共享 url 和命令行从 Google Colab 获取 "raw" ipynb 文件?
How to get "raw" ipynb file from Google Colab using sharing url & command line?
为 Google Colab 获得的“共享 url”链接到一个包含大量额外 HTML 的文件,因此当您尝试使用 wget 或 c[=34 下载它时=],您没有获得有效的 Jupyter .ipynb 文件。
如何使用命令行工具(例如 wget 或 curl 获取文件本身? (注意:我说的是“public”共享 URL,其中“拥有 URL 的任何人都可以查看”。而且我宁愿不必使用专门的 google-驱动命令行 API 可能需要身份验证的工具等)
你可以按这会给你一个有效的 URL 来下载 Jupyter notebook 文件,但我在 Colab 中没有看到任何这样的东西。也许有某种“?form=raw
”的东西可以添加到 URL?
或者,是否有推荐的脚本用于删除所有额外的 HTML,只为 .ipynb 文件保留 JSON?
澄清:我不是在谈论在 Colab 中手动移动鼠标并单击“文件 > 下载 > 下载 ipynb”;这很简单!我说的是使用“共享 URL”以编程方式获取文件。
已解决,通过 this post:您只需要从 url!
中提取“文件 ID”
如果分享url是
https://colab.research.google.com/drive/1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX?usp=sharing
那么文件 ID 就是“驱动器/”和问号之间的所有内容。
一点bash例子...
$ export fileid=1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX
$ wget -O downloaded_file.ipynb 'https://docs.google.com/uc?export=download&id='$fileid
...结果是 downloaded_file.ipynb 处的有效 Jupyter 文件。 :-)
将所有这些放在一个方便的 bash
函数中,然后看起来像这样:
grabcolab() { fileid=$( echo "" | sed -E 's/.*drive\/(.*)\?.*//' ); 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- 题外话但是如果你想从命令行 运行 notebook ,jupytext
(可通过 pip install jupytext
安装)对我来说比 jupyter notebook --to-script
好一点,所以我在 运行 笔记本上使用的是
nbrun() { jupyter nbconvert --to script ""; mv "${1%.*}".py run_this.ipy; ipython run_this.ipy;}
如
$ grabcolab https://colab.research.google.com/drive/1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX?usp=sharing
$ nbrun colab.ipynb
为 Google Colab 获得的“共享 url”链接到一个包含大量额外 HTML 的文件,因此当您尝试使用 wget 或 c[=34 下载它时=],您没有获得有效的 Jupyter .ipynb 文件。
如何使用命令行工具(例如 wget 或 curl 获取文件本身? (注意:我说的是“public”共享 URL,其中“拥有 URL 的任何人都可以查看”。而且我宁愿不必使用专门的 google-驱动命令行 API 可能需要身份验证的工具等)
?form=raw
”的东西可以添加到 URL?
或者,是否有推荐的脚本用于删除所有额外的 HTML,只为 .ipynb 文件保留 JSON?
澄清:我不是在谈论在 Colab 中手动移动鼠标并单击“文件 > 下载 > 下载 ipynb”;这很简单!我说的是使用“共享 URL”以编程方式获取文件。
已解决,通过 this post:您只需要从 url!
中提取“文件 ID”如果分享url是 https://colab.research.google.com/drive/1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX?usp=sharing
那么文件 ID 就是“驱动器/”和问号之间的所有内容。
一点bash例子...
$ export fileid=1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX
$ wget -O downloaded_file.ipynb 'https://docs.google.com/uc?export=download&id='$fileid
...结果是 downloaded_file.ipynb 处的有效 Jupyter 文件。 :-)
将所有这些放在一个方便的 bash
函数中,然后看起来像这样:
grabcolab() { fileid=$( echo "" | sed -E 's/.*drive\/(.*)\?.*//' ); 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- 题外话但是如果你想从命令行 运行 notebook ,jupytext
(可通过 pip install jupytext
安装)对我来说比 jupyter notebook --to-script
好一点,所以我在 运行 笔记本上使用的是
nbrun() { jupyter nbconvert --to script ""; mv "${1%.*}".py run_this.ipy; ipython run_this.ipy;}
如
$ grabcolab https://colab.research.google.com/drive/1SxJJc6LsKrjWAM-HhwPrLJBpUzImO5oX?usp=sharing
$ nbrun colab.ipynb