GoogleドライブにZip(2K画像)データセットが既にあります。 MLトレーニングアルゴリズムで使用する必要があります。以下のコードは、コンテンツを文字列形式で抽出します。
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')))
ただし、データセットの処理(および理解)を容易にするため、別のディレクトリに抽出して保存する必要があります。
さらに抽出しようとしましたが、「zipファイルエラーではありません」
dataset = io.BytesIO(downloaded.encode('cp862'))
Zip_ref = zipfile.ZipFile(dataset, "r")
Zip_ref.extractall()
Zip_ref.close()
注:データセットは参照用であり、このZipを既にGoogleドライブにダウンロードしており、ドライブ内のファイルのみを参照しています。
これはこれだけで使えます
!unzip file_location
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()
GDriveのマウント:
from google.colab import drive
drive.mount('/content/gdrive')
リンクを開く->認証コードをコピーする->それをプロンプトに貼り付けて、「Enter」を押す
GDriveアクセスを確認します。
!ls "/content/gdrive/My Drive"
nzip (qは "quiet"の略)GDriveからのファイル:
!unzip -q "/content/gdrive/My Drive/dataset.Zip"
まず、colabにunzipをインストールします。
!apt install unzip
次に、unzipを使用してファイルを抽出します。
!unzip source.Zip -d destination.Zip
最初に新しいディレクトリを作成します。
!mkdir file_destination
次は、解凍したファイルでディレクトリをこれで膨らませる時です。
!unzip file_location -d file_destination
簡単な接続方法
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)コラボで使用するドライブ名(「gdrive」)を作成し、動作するかどうかを確認します
!mkdir gdrive
!google-drive-ocamlfuse gdrive
!ls gdrive
!cd gdrive
GetContentString()
の代わりに、代わりにGetContentFile()を使用します。文字列を返す代わりにファイルを保存します。
downloaded.GetContentFile('images.Zip')
その後、unzip
を使用して後で解凍できます。
ファイルをディレクトリに解凍するには:
!unzip path_to_file.Zip -d path_to_directory