LoginSignup
14
17

More than 5 years have passed since last update.

PythonでGoogle ColaboratoryとGoogle Driveのファイルのやりとりする(1)

Last updated at Posted at 2018-05-06

Google Colaboratoryはとても便利ですが、ファイルのやりとりが若干めんどくさいのが難点。Google Drive公式のpython APIを利用して、ファイルのアップロード、ダウンロードを便利にしましょう。

2018/9/19更新{
ColaboratoryでのGoogle Driveへのマウントが簡単になっていたお話
https://qiita.com/k_uekado/items/45b76f9a6f920bf0f786

めっちゃ便利になって、一瞬でマウント出来るようになったらしい。
例えばcolaboratoryのフォルダにcolab_tmpというフォルダを作成のうえ、
下記の通りマウント、認証、カレントディレクトリの変更を行うことで、
google driveとcolabolatoryの間でファイルをやり取りできる。
個人的にgoogle driveのファイルの管理のためのapi作ろうかと思っていたが、
マウント後にlinuxのコマンドを使うだけで片付く模様。

from google.colab import drive
drive.mount('/content/drive')
import os
os.chdir("/content/drive/My Drive/Colab Notebooks/colab_temp")

}

大まかな流れとしては、APIを作成し認証用のjsonファイルを作成し、そのファイルやライブラリをインストールしたうえで、クエリを使用してファイルやフォルダのGoogle Drive上でのidを取得し、ファイルのダウンロードやアップロードを行うという流れになります。
記事が長くなるため、3記事に分けて投稿します。

0.Google Colaboratoryを使う
1.CLI APIを作成する
2.必要なライブラリのインストール
3.serviceの作成
4.queryの実行によるidの取得
5.Goole Driveからのファイルのダウンロード、アップロード
6.Githubを利用した方法

0.Google Colaboratoryを使う

Chromeで"Google Colaboratory"と検索して
Hello, Colaboratory - Colaboratory - Google
を開くと下記のような画面が出てくるので、「ノートブックを新規作成」、
「PYTHON3 の新しいノートブック」を選ぶ。

colaboratory.png

ノートブックの名前が「Untitled0.ipynb」など適当な名前になっているので、
タイトルを「gdrive.ipynb」などにする。
Google Driveを確認すると
「Colab Notebooks」というフォルダが作成され、その中に「gdrive.ipynb」
が作成されています。
次回からはGoogle Drive上で「gdrive.ipynb」を右クリックして、「アプリで開く」、
「Collaboratory」と選ぶだけでJupyter Notebookが使えます。(ちなみにAndroid端末やipadでも最初に書いたGoogle検索経由でアクセスすればColaboratoryが使えます。)

gdrive.png

1.CLI APIを作成する(STEP 1 Turn on the Drive API)

google Google Drive REST API Overview
https://developers.google.com/drive/v3/web/about-sdk

quick start for python
https://developers.google.com/drive/v3/web/quickstart/python

quick start for pythonのリンク先を開くと、
Step 1: Turn on the Drive API
Use this wizard to create or select a project in the Google Developers Console and automatically turn on the API. Click Continue, then Go to credentials.
と書いてあるので、"this wizard"の部分のリンク
「同意をはいにする」「同意して続行」
select_project.png

「認証情報に進む」①
ninsyo.png

「Google Drive API」「その他のUI」「ユーザーデータ」②
ninsyo2.png

「名前をつける」「クライアントIDの作成」③
ninsyo3.png

「アドレス選択」「名前を入力」「次へ」④
ninsyo4.png

「完了」(ダウンロードはしない。)⑤
ninsyo5.png

ごみ箱の右に、ダウンロードっぽいボタンがあるのでクリック。⑥
名前を、”client_secret.json”に直しておく。
ninsyo6.png

14
17
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
14
17