起因
因为Jupyter Notebook目前来说只是支持ipynp的下载,并且一次仅仅只能下载一个,影响了我们的效率,这组代码可以帮助大家对一个文件夹进行总下载,很方便、很快捷,希望可以帮助到大家。
方法1-python中使用tarfile打包
在想要打包的目录下新建文件:
会出现一个文件:
里面填上如下代码并运行 do_tar.ipynb:
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)
说明已经打包好,压缩率并不高,没有zip的压缩率高。选中这个压缩文件 archive.tar 点击下载即可。
方法2-用linux命令
直接用linux命令,在jupyter中只需要在命令前加一个!即可。服务器上没有装zip,但装了tar,可以在压缩的时候选择文件压缩为.tar.gz的文件格式。
第一种命令,打包当前目录下的所有子目录和文件位压缩包data.zip:
!zip -r data.zip .
第二种命令,打包当前目录下的所有子目录和文件位压缩包data1.tar.gz,
!tar -cvzf ./data1.tar.gz ./