I already have a zip of (2K images) dataset on a google drive. I have to use it in a ML training algorithm. Below Code extracts the content in a string format:
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')))
But I have to extract and store it in a separate directory as it would be easier for processing (as well as for understanding) of the dataset.
I tried to extract it further, but getting "Not a zipfile error"
dataset = io.BytesIO(downloaded.encode('cp862'))
zip_ref = zipfile.ZipFile(dataset, "r")
zip_ref.extractall()
zip_ref.close()
Note: Dataset is just for reference, I have already downloaded this zip to my google drive, and I'm referring to file in my drive only.
Instead of
GetContentString()
, use GetContentFile() instead. It will save the file instead of returning the string.Then you can unzip it later with
unzip
.To extract Google Drive zip from a Google colab notebook:
SIMPLE WAY TO CONNECT
1) You'll have to verify authentication
2)To fuse google drive
3)To verify credentials
4)Create a drive name to use it in colab ('gdrive') and check if it's working
TO unzip a file to a directory:
Mount GDrive:
Open the link -> copy authorization code -> paste that into the prompt and press "Enter"
Check GDrive access:
Unzip (q stands for "quiet") file from GDrive:
You can use this simply this