如何从 Jupyter Notebook 下载所有文件和文件夹层次结构?
How to download all files and folder hierarchy from Jupyter Notebook?
如果我想从 Jupyter Notebook 下载所有文件和文件夹层次结构,如图所示,您知道除了转到每个文件夹中的每个文件之外,是否可以通过简单的单击来完成此操作打开文件点击下载几百次?
注意:这个 Jupyter Notebook 是由在线课程老师创建的,所以它不是从我本地的 Acaconda 应用程序打开的,而是从在线课程网页打开的。下载是为了以后有需要的时候刷新记忆。
import os
import tarfile
def recursive_files(dir_name='.', ignore=None):
for dir_name,subdirs,files in os.walk(dir_name):
if ignore and os.path.basename(dir_name) in ignore:
continue
for file_name in files:
if ignore and file_name in ignore:
continue
yield os.path.join(dir_name, file_name)
def make_tar_file(dir_name='.', tar_file_name='tarfile.tar', ignore=None):
tar = tarfile.open(tar_file_name, 'w')
for file_name in recursive_files(dir_name, ignore):
tar.add(file_name)
tar.close()
dir_name = '.'
tar_file_name = 'archive.tar'
ignore = {'.ipynb_checkpoints', '__pycache__', tar_file_name}
make_tar_file(dir_name, tar_file_name, ignore)
要使用它,只需在要下载的根文件夹中创建一个新的 .ipynb 笔记本。然后将上面的代码复制并粘贴到第一个单元格中并 运行 它。
完成后 - 您会看到在同一文件夹中创建了一个 tar 文件,其中包含所有文件和子文件夹。
上面发布的答案大部分有效,但它复制链接而不是链接指向的文件。如果您将 dereference=True 添加为 tarfile.open 的参数,您将获得文件本身。
tar = tarfile.open(tar_file_name, 'w', dereference=True)
如果我想从 Jupyter Notebook 下载所有文件和文件夹层次结构,如图所示,您知道除了转到每个文件夹中的每个文件之外,是否可以通过简单的单击来完成此操作打开文件点击下载几百次?
注意:这个 Jupyter Notebook 是由在线课程老师创建的,所以它不是从我本地的 Acaconda 应用程序打开的,而是从在线课程网页打开的。下载是为了以后有需要的时候刷新记忆。
import os
import tarfile
def recursive_files(dir_name='.', ignore=None):
for dir_name,subdirs,files in os.walk(dir_name):
if ignore and os.path.basename(dir_name) in ignore:
continue
for file_name in files:
if ignore and file_name in ignore:
continue
yield os.path.join(dir_name, file_name)
def make_tar_file(dir_name='.', tar_file_name='tarfile.tar', ignore=None):
tar = tarfile.open(tar_file_name, 'w')
for file_name in recursive_files(dir_name, ignore):
tar.add(file_name)
tar.close()
dir_name = '.'
tar_file_name = 'archive.tar'
ignore = {'.ipynb_checkpoints', '__pycache__', tar_file_name}
make_tar_file(dir_name, tar_file_name, ignore)
要使用它,只需在要下载的根文件夹中创建一个新的 .ipynb 笔记本。然后将上面的代码复制并粘贴到第一个单元格中并 运行 它。
完成后 - 您会看到在同一文件夹中创建了一个 tar 文件,其中包含所有文件和子文件夹。
上面发布的答案大部分有效,但它复制链接而不是链接指向的文件。如果您将 dereference=True 添加为 tarfile.open 的参数,您将获得文件本身。
tar = tarfile.open(tar_file_name, 'w', dereference=True)