PythonでGoogle Driveを扱う

PyDrive2を使ってPythonからGoogle Driveを扱えるようにします。

Advertisement

PythonでGoogle Driveを扱う

PythonからGoogle Driveのファイルを扱えるといろいろと便利です。

例えばGoogle DriveのデータをPythonから読み込んできて編集した後上書きアップロードをしたりすることができます。

PyDrive2

今回はPythonでGoogle Driveを扱うためにPyDrive2を利用します。

基本的にクイックスタートの流れを行うと良いかと思います。

PyDrive2のインストール

pip install PyDrive2

と実行してインストールしてください。

Google Drive APIを有効化

まず前提としてGoogle Cloudでプロジェクトを作成してAPIを有効にする必要があります。

Google Cloud内でGoogle Drive APIと検索して有効にしてください。

認証情報を開き、認証情報を作成→OAuth クライアント IDを選択します。

同意画面を設定をクリックし、User Typeに外部を選択して作成してください。

アプリ情報などを入力して次へ進み、最後にダッシュボードに戻ってください。

アプリを公開してください。

メニューから認証情報を開き、認証情報を作成→OAuth クライアント IDを選択します。

アプリケーションの種類をウェブアプリケーションに、適切な名前を入力、承認済みリダイレクトURIに”http://localhost:8080/”を入力して作成してください。

作成したクライアントIDの右側にあるボタンからJSONをダウンロードしてください。

ダウンロードしたファイルのファイル名を”client_secrets.json”に変更し、作業用ディレクトリに移動してください。

settings.yamlの作成

ログイン情報を保存し、今後のログインを不要にするためにsettings.yamlを作成します。

settings.yamlというファイルを作成し、

client_config_backend: file
client_config_file: client_secrets.json


save_credentials: True
save_credentials_backend: file
save_credentials_file: credentials.json


get_refresh_token: True


oauth_scope:
  - https://www.googleapis.com/auth/drive.file
  - https://www.googleapis.com/auth/drive.install
  - https://www.googleapis.com/auth/drive.metadata

と記述して作業用ディレクトリに保存してください。

その後、

from pydrive2.auth import GoogleAuth

gauth = GoogleAuth()
gauth.LocalWebserverAuth() # Creates local webserver and auto handles authentication.

とPythonを作成して実行するとブラウザが立ち上がるので、利用するGoogleアカウントでログインし、権限を与えてください。

credentials.jsonが生成され、今後は認証不要で利用可能になります。

コード

from pydrive2.auth import GoogleAuth

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

from pydrive2.drive import GoogleDrive

drive = GoogleDrive(gauth)

file1 = drive.CreateFile({'title': 'Hello.txt'})
file1.SetContentString('Hello World!')
file1.Upload()

とPythonを作成して実行し、Google DriveにテキストがアップロードされればOKです。

Advertisement

PyDrive2を利用するとファイルのダウンロード・アップロード以外にも様々な操作ができます。