下载后如何在协作环境中的特定文件夹中解压缩文件?

时间:2019-04-11 19:15:52

标签: python tar google-colaboratory

我正在寻找一种解决方案,以解决当我使用来自GoogleDrive的连接时Google Colab上的图像数据集上载速度慢的问题。使用以下代码:

from google.colab import drive

drive.mount('/content/gdrive')

使用此过程,我可以使用我的def load_dataset上传图像并创建标签:

'train_path=content/gdrive/MyDrive/Capstone/Enviroment/cell_images/train'

train_files, train_targets = load_dataset(train_path)

但是,正如我所说,这非常慢,特别是因为我的完整数据集由27560张图像组成。

为解决我的问题,我尝试使用this solution

但是现在,为了仍然使用我的def功能,在下载.tar文件之后,我想将其提取到colab环境中的特定文件夹中。我找到了this answer,但没有解决我的问题。

示例:

这是已经下载了test.tar的环境。 enter image description here

但是我想提取tar文件中的文件,该文件的结构为train/Uninfectedtrain/Parasitized,以获取此信息:

  • 内容

    • cell_images
      • 测试
        • 已被寄生
        • 未感染
      • 火车
        • 已被寄生
        • 未感染
      • 有效
        • 已被寄生
        • 未感染

要在def函数中使用路径:

train_path = train_path=content/cell_images/train/'

train_files, train_targets = load_dataset(train_path)

test_path = train_path=content/cell_images/test/'

test_files, test_targets = load_dataset(test_path)

valid_path = train_path=content/cell_images/valid/'

valid_files, valid_targets = load_dataset(valid_path)

我尝试使用: ! mkdir -p content/cell_images!tar -xvf 'test.tar' content/cell_images

但是它不起作用。

有人知道如何进行吗?

谢谢!

4 个答案:

答案 0 :(得分:7)

虽然回答迟了,但可能会帮助其他人:

shutil.unpack_archive几乎适用于所有存档格式(例如“ zip”,“ tar”,“ gztar”,“ bztar”,“ xztar”),并且很简单:

import shutil
shutil.unpack_archive("filename", "path_to_extract")

答案 1 :(得分:2)

要将文件从tar归档程序提取到文件夹content/cell_images,请使用命令行选项-C

!tar -xvf  test.tar -C content/cell_images

希望这会有所帮助!

答案 2 :(得分:0)

连接到驱动器

来自google.colab导入驱动器 drive.mount('/ content / drive')

检查目录 !ls和!pwd

解压缩 !unzip驱动器/“我的驱动器” /images.zip -d目标

答案 3 :(得分:0)

如果当前目录是默认目录/content,则可以这样解压缩文件夹项目:

%%bash
mkdir foldername
tar -xvf '/content/foldername.tar' -C '/content/'

%%bash使您无需在每行开头使用!即可编写脚本。