下载Jupyter笔记本服务器上路径中的所有文件

时间:2017-03-27 09:35:13

标签: wget jupyter-notebook jupyter

作为运行Jupyter笔记本进行分配的类中的用户,我可以通过Web界面访问分配。我假设分配存储在服务器上我个人空间的某个地方,所以我应该可以下载它们。如何下载个人用户空间中的所有文件? (例如,wget

这是路径结构:

https://urltoserver/user/username

有几个目录:分配,数据等。

https://urltoserver/user/username/assignments

https://urltoserver/user/username/data

...

我想下载所有文件夹(递归)。足够我可以启动我在网上看到的任何内容。如果有一些禁用的文件夹,那么好,跳过这些并下载其余文件夹。

请完全按照我自己无法解决的方式指定命令(我试过wget

8 个答案:

答案 0 :(得分:88)

尝试在您的某个笔记本中将其作为单独的单元格运行:

!tar chvfz notebook.tar.gz *

如果要覆盖树中的更多文件夹,请在../之前为目录的每一步编写*。文件 notebook.tar.gz 将保存在与笔记本相同的文件夹中。

答案 1 :(得分:5)

您可以从"新"创建一个新终端。菜单并调用https://stackoverflow.com/a/47355754/8554972上描述的命令:

tar cvfz notebook.tar.gz *

文件notebook.tar.gz将保存在与笔记本相同的文件夹中。

答案 2 :(得分:1)

最简单的方法是使用tar归档所有内容,但还有一个用于文件下载的API。

GET /files/_FILE_PATH_

要获取文件夹中的所有文件,可以使用:

GET /api/contents/work

示例:

curl https://server/api/contents?token=your_token
curl https://server/files/path/to/file.txt?token=your_token --output some.file

来源:Jupyter Docs

答案 3 :(得分:0)

即使使用wget选项,我也认为wget -r无法做到这一点。您可能需要单独下载它们(使用仪表板视图中的“下载”选项(仅适用于单个非目录,未运行的笔记本项目),如果您可以使用它。

然而,您可能无法下载它们,因为如果您的老师使用像nbgrader这样的评分软件,那么学生可以自己访问笔记本电脑是不可取的 - 因为笔记本电脑也可以包含有关答案的信息。

答案 4 :(得分:0)

我正在通过Coursera学习吴安德教授的Deeplearning.ai计划。该课程在线使用Jupyter笔记本。随笔记本一起是带有大文件的文件夹。这就是我用来将所有分配以及相关文件和文件夹成功下载到本地Windows 10 PC上的方法。

从上面Serzan Akhmetov的帖子中建议的以下代码行开始:

!tar cvfz allfiles.tar.gz *

这将产生一个压缩包,如果足够小,可以从Jupyter笔记本电脑本身下载压缩包,并使用7-Zip解压缩。但是,本课程有大小为100 MB的单个文件,以及带有100样本图像的文件夹。最终的tarball太大,无法通过浏览器下载。

因此,再添加一行代码将文件拆分为可管理的块大小,如下所示:

!split -b 50m allfiles.tar.gz allfiles.tar.gz.part.

这会将归档文件分成多个部分,每个部分的大小为50 Mb(或您的首选大小设置)。每个部分都有一个扩展名,例如allfiles.tar.gz.part.xx。像以前一样下载每个部分。

最后的任务是解压缩多部分存档。使用7-Zip非常简单。只需选择该系列中的第一个文件即可使用7-Zip进行提取。对于所使用的示例,此文件名为allfiles.tar.gz.part.aa。只要它们在同一文件夹中,它将把所有必要的部分拉在一起。

希望这有助于增加Serzan的出色回答。

答案 5 :(得分:0)

from google.colab import files

files.download("/content/data.txt")

如果您使用的是Google colab或Jupyter笔记本,则这些行可能会起作用。

第一行导入库文件 第二个,下载您创建的文件,例如:位于内容中的“ data.txt”(您的文件名)。

答案 6 :(得分:0)

我基于@Sun Bee 的 solution 做了一个小更新,它允许您使用时间戳子修复创建多个文件备份。

!tar cvfz allfiles-`date +"%Y%m%d-%H%M"`.tar.gz *

答案 7 :(得分:-1)

首先尝试通过以下方式获取目录:

import os
os.getcwd()

然后使用来自How to create a zip archive of a directory的剪辑。 您可以通过压缩来下载完整的目录。 祝你好运!