LoginSignup
2
1

More than 1 year has passed since last update.

ColabでGoogleDrive上の容量の大きいデータをダウンロードする

Last updated at Posted at 2021-06-30

はじめに

2021年6月30日現在の方法になります.

ColabやPyPiの仕様変更によって成功するかどうかは変わりますので悪しからず...

やること

GoogleDriveにある100MB以上のファイルのダウンロード方法を紹介します.
100MB未満のファイルを扱う方は,この方のcurlやwgetで公開済みGoogle Driveデータをダウンロードするを読んでみましょう.

手っ取り早く試したい人はこちらのコマンドをどうぞ.

!pip install gdown
!gdown "https://drive.google.com/uc?export=download&id=1raMzTc0UmUxXluQ7ckPDHbQbhLhZCL_A"
!unzip cat.zip

100MB未満のファイルを扱うときのコマンドは次の通りです.

!wget "https://drive.google.com/uc?export=download&id=<FILE_ID>" -O <FILE_NAME>

※Colabはipynb形式なのでマジックコマンドになっています(コマンドの頭にがついています).

誰向けか

Colabを使ってデータ分析とか始めたい人

Colabの扱いにそこまで慣れていない人
(やり込んでる人は知っているような内容かと思います...)

ダウンロード手順

  1. ファイルのIDを調べる
  2. pipでgdownをインストールする(Cobalにはプリインされてました)
  3. gdownコマンドでダウンロードする

GoogleDriveのファイルのID

知っている人は飛ばして次のダウンロード実行に進みましょう.

【Goodle Drive】→【目的のファイルのディレクトリ】まで遷移しましょう.

01.png

右クリックか二本指クリック→【リンクを取得】をクリックしましょう.
このようなモーダル画面が現れます.

02.png

【制限付き】→【リンクを知っている全員】に変更しましょう.
ちなみに,ここで【制限付き】にするとあとで怒られます.
(僕の二の轍を踏まないで下さいね←)

03.png


さて変更するとこんな画面になります.

04.png

【閲覧者】でも【閲覧者(コメント可)】でも【編集者】でもどれでもいいです.

【リンクをコピー】を押しましょう.
すると下記のようなリンクが手に入ります.

https://drive.google.com/file/d/1raMzTc0UmUxXluQ7ckPDHbQbhLhZCL_A/view?usp=sharing

IDはこの部分です.

05.png

file/d//view?の間ですね.
この場合は1raMzTc0UmUxXluQ7ckPDHbQbhLhZCL_Aですね.
これをメモしておきましょう.あとで使います.

ダウンロードの実行

次の二つのコマンドを見てみましょう.
2.pipでgdownをインストールする(Cobalにはプリインされてました)
3.gdownコマンドでダウンロードする

!pip install gdown
!gdown "https://drive.google.com/uc?export=download&id=[FILE_ID]"
# [FILE_ID]は任意のファイルのIDです

(マジックコマンド!pipを使ってgdownをインストールします.)
※Colabでは必要のない処理ですが,他の環境で実行するのであれば必要になる場合があります.

!gdown ダウンロードファイルURLでGoodleDriveからファイルをダウンロードできるので,先ほど取得したファイルのIDを[FILE_ID]に代入しましょう.

上の例の場合はこのようになります.

!pip install gdown
!gdown "https://drive.google.com/uc?export=download&id=1raMzTc0UmUxXluQ7ckPDHbQbhLhZCL_A"

実行するとこのようにダウンロードの様子が表示されます.
そして左側の【:file_folder:】の中に【cat.zip】を確認することができます.

07.png

おまけ:zipの解凍

さて,この例ではcat.zipという猫画像を100枚スプレイピングしたものが入っています.

zipファイルなので解凍する必要があります.
こんな感じで解凍しましょう.

from IPython.display import clear_output
!unzip cat.zip
clear_output()

うまくいくと,左側の【:file_folder:】の中に【cat】を確認することができます.

06.png

おわりに

ローカルでの実行方法は結構あったんですが,Colab上でとなるとなかなかいなかったので書いてみました.
書き終わった後に探し直したらありました!!笑
こちらもどうぞ!Google ColabでGoogle driveの公開ファイルを直接ダウンロードする方法

ちなみに参考にしたのはこのやりとりです.
グーグルドライブからwget / curl大きなファイル

サンプルを用意してみました.
実際に動きを確認したい人はこちらから試してみて下さい.
https://colab.research.google.com/drive/1JDev-cw4ufXWFC-p8jUwUk3Jl8jr7MOP#forceEdit=true&sandboxMode=true

この類の何度も行う処理はスニペット化,あるいは同じファイルを使い回すのであればテンプレート化してもいいかもしれませんね.
Colabスニペットについてはこちらの記事をどうそ.

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1