我已经在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()
注意:数据集仅供参考,我已经将此zip文件下载到我的google驱动器中,而且我只是指我的驱动器中的文件。
答案 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