从Google colab笔记本中提取Google Drive zip

时间:2018-04-06 05:26:03

标签: python google-drive-api extract zipfile google-colaboratory

我已经在google驱动器上有一个(2K图像)数据集的zip码。我必须在ML训练算法中使用它。 Code下面以字符串格式提取内容:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
import io
import zipfile
# Authenticate and create the PyDrive client.
# This only needs to be done once per notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# Download a file based on its file ID.
#
# A file ID looks like: laggVyWshwcyP6kEI-y_W3P8D26sz
file_id = '1T80o3Jh3tHPO7hI5FBxcX-jFnxEuUE9K' #-- Updated File ID for my zip
downloaded = drive.CreateFile({'id': file_id})
#print('Downloaded content "{}"'.format(downloaded.GetContentString(encoding='cp862')))

但我必须将其提取并存储在一个单独的目录中,因为它更容易处理(以及理解)数据集。

我试图进一步提取它,但得到“Not a zipfile error”

dataset = io.BytesIO(downloaded.encode('cp862'))
zip_ref = zipfile.ZipFile(dataset, "r")
zip_ref.extractall()
zip_ref.close()

Google Drive Dataset

注意:数据集仅供参考,我已经将此zip文件下载到我的google驱动器中,而且我只是指我的驱动器中的文件。

13 个答案:

答案 0 :(得分:8)

你可以简单地使用这个

!unzip file_location

答案 1 :(得分:4)

首先,在colab上安装解压缩:

!apt install unzip

然后使用解压缩来提取文件:

!unzip  source.zip -d destination.zip

答案 2 :(得分:3)

首先创建一个新目录:

!mkdir file_destination

现在是时候使用以下解压缩的文件为目录充气:

!unzip file_location -d file_destination

答案 3 :(得分:2)

要从Google colab笔记本中提取Google Drive zip,请执行以下操作:

import zipfile
from google.colab import drive

drive.mount('/content/drive/')

zip_ref = zipfile.ZipFile("/content/drive/My Drive/ML/DataSet.zip", 'r')
zip_ref.extractall("/tmp")
zip_ref.close()

答案 4 :(得分:2)

在驱动器上安装后,请使用shutil.unpack_archive。它适用于几乎所有存档格式(例如“ zip”,“ tar”,“ gztar”,“ bztar”,“ xztar”),而且很简单:

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

答案 5 :(得分:2)

Colab研究团队有notebook可以帮助您。

简而言之,如果您正在处理一个zip文件,例如对我来说,它主要是数千张图像,而我想将它们存储在驱动器内的文件夹中,然后执行此操作-

!unzip -u "/content/drive/My Drive/folder/example.zip" -d "/content/drive/My Drive/folder/NewFolder"

-u部分仅在有新内容/必要时才控制提取。如果突然失去连接或硬件关闭,这一点很重要。

-d创建目录,提取的文件存储在该目录中。

当然,在执行此操作之前,您需要安装驱动器

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

我希望这会有所帮助!干杯!

答案 6 :(得分:1)

而不是GetContentString(),而是使用GetContentFile()。它将保存文件而不是返回字符串。

downloaded.GetContentFile('images.zip') 

然后您可以稍后使用unzip解压缩。

答案 7 :(得分:1)

简单的连接方式

1)您必须验证身份验证

from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()

2)融合Google驱动器

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse

3)要验证凭据

import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

4)创建一个驱动器名称以在colab('gdrive')中使用它,并检查其是否正常工作

!mkdir gdrive
!google-drive-ocamlfuse gdrive
!ls gdrive
!cd gdrive

答案 8 :(得分:1)

安装GDrive:

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

打开链接->复制授权代码->将其粘贴到提示中,然后按“ Enter”

检查GDrive访问权限:

!ls "/content/gdrive/My Drive"
来自GDrive的

Unzip(q-相当!)文件:

!unzip -q "/content/gdrive/My Drive/dataset.zip"

答案 9 :(得分:1)

要将文件解压缩到目录:

!unzip path_to_file.zip -d path_to_directory

答案 10 :(得分:0)

对于Python

连接到驱动器

google.colab导入驱动器中的

drive.mount('/ content / drive')

检查目录

!ls和!pwd

解压缩

!解压缩驱动器/“我的驱动器” /images.zip

答案 11 :(得分:0)

尝试一下:

!unpack file.zip

如果它现在可以工作或文件为7z,请尝试以下

!apt-get install p7zip-full
!p7zip -d file_name.tar.7z
!tar -xvf file_name.tar

!pip install pyunpack
!pip install patool

from pyunpack import Archive
Archive(‘file_name.tar.7z’).extractall(‘path/to/’)
!tar -xvf file_name.tar

答案 12 :(得分:-2)

在我的想法中,你必须去某个路径例如:

<块引用>

from google.colab import drive drive.mount('/content/drive/') cd 驱动器/MyDrive/f/

然后:

!apt 安装解压 !unzip zip_folder.zip -d unzip_folder enter image description here