下载后如何在colaboratory环境中解压到特定文件夹中的文件?
How to unzip a file in a specific folder in colaboratory environment after download it?
我正在寻找一种解决方案,以解决当我使用来自 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 的环境。
但是我想提取tar文件中的文件,其结构是train/Uninfected
; train/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
但它不起作用。
有人知道如何进行吗?
谢谢!
要将文件从 tar 存档器提取到文件夹 content/cell_images
,请使用命令行选项 -C
:
!tar -xvf 'test.tar' -C 'content/cell_images'
希望对您有所帮助!
连接到驱动器,
从 google.colab 导入驱动器
drive.mount('/content/drive')
检查目录
!ls 和 !pwd
解压缩
!unzip drive/"My Drive"/images.zip -d destination
如果您的当前目录是默认目录,/content
,您可以像这样解压您的文件夹项目:
%%bash
mkdir foldername
tar -xvf '/content/foldername.tar' -C '/content/'
%%bash
让您无需在每行的开头使用 !
即可编写脚本。
虽然回答晚了,但可能对其他人有帮助:
shutil.unpack_archive 适用于几乎所有的存档格式(例如,“zip”、“tar”、“gztar”、“bztar”、“ xztar") 很简单:
import shutil
shutil.unpack_archive("filename", "path_to_extract")
!tar -xvf "cord-19_2021-12-20.tar.gz"
我正在寻找一种解决方案,以解决当我使用来自 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 的环境。
但是我想提取tar文件中的文件,其结构是train/Uninfected
; train/Parasitized
,得到这个:
内容
- cell_images
- 测试
- 已寄生
- 未感染
- 火车
- 已寄生
- 未感染
- 有效
- 已寄生
- 未感染
- 测试
- 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
但它不起作用。
有人知道如何进行吗?
谢谢!
要将文件从 tar 存档器提取到文件夹 content/cell_images
,请使用命令行选项 -C
:
!tar -xvf 'test.tar' -C 'content/cell_images'
希望对您有所帮助!
连接到驱动器,
从 google.colab 导入驱动器 drive.mount('/content/drive')
检查目录 !ls 和 !pwd
解压缩 !unzip drive/"My Drive"/images.zip -d destination
如果您的当前目录是默认目录,/content
,您可以像这样解压您的文件夹项目:
%%bash
mkdir foldername
tar -xvf '/content/foldername.tar' -C '/content/'
%%bash
让您无需在每行的开头使用 !
即可编写脚本。
虽然回答晚了,但可能对其他人有帮助:
shutil.unpack_archive 适用于几乎所有的存档格式(例如,“zip”、“tar”、“gztar”、“bztar”、“ xztar") 很简单:
import shutil
shutil.unpack_archive("filename", "path_to_extract")
!tar -xvf "cord-19_2021-12-20.tar.gz"