Google Colab:如何解压缩上传到 Google Drive 的文件?

问题描述 投票:0回答:2

我有一个文件存储在我的谷歌驱动器的

Bioinformatics project
文件夹中。我想加载和解压这个文件
gbm_tcga_pub2013.tar.gz
.

from google.colab import drive
drive.mount('/content/gdrive')

path='/content/gdrive/MyDrive/Bioinformatics project'

!tar -xvzf path/gbm_tcga_pub2013.tar.gz

回溯:

tar: path/gbm_tcga_pub2013.tar.gz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
google-colaboratory tar mount
2个回答
1
投票

tar
是 bash 命令。
path
是一个 Python 变量。可能有一种混合它们的方法,但事实并非如此。在这种情况下,
tar
命令正在寻找
path/gbm_tcga_pub2013.tar.gz
目录,该目录显然不存在。以下应该有效:

!tar -xvzf /content/gdrive/MyDrive/Bioinformatics project/gbm_tcga_pub2013.tar.gz

0
投票

有点晚了,但对于 2023 年的读者来说:

使用 Google Colab 处理 Google Drive 中的文件时,您需要注意以下几点:

  • Colab(notebooks)直接运行Python
  • 当你调用 shell/bash 命令时,你需要在它前面加上“!”,这会打开一个新的 shell 并在那里执行命令,然后关闭它。
  • 要将 Python 变量值传递给 bash 命令,您可以使用 {myvar} 语法(较新的语法)。
  • 在任何情况下,它们之间的文件传输都是有问题的,而且速度很慢,尤其是对于大文件。因此,首选使用 shutil (Python)。
  • 从VM创建tar.gz到驱动器时,在关闭VM会话之前,需要刷新它,直接关闭驱动器会切断流。

所以任务可以这样完成:

drivepath = '/content/gdrive'

from google.colab import drive
drive.mount(drivepath)

datapath = f'{drivepath}/MyDrive/mydatadir'
fn = 'expandme.tar.gz'
datafile = f'{datapath}/{fn}'

!tar -xvzf {datafile}
# or
!tar -xvzf {datapath}/expandme.tar.gz
# or
!tar -xvzf {drivepath}/MyDrive/mydatadir/expandme.tar.gz

...

© www.soinside.com 2019 - 2024. All rights reserved.