この記事では、Google Drive APIとPythonを使用してGoogle Driveのファイル一覧を取得する方法を解説します。
環境設定
ライブラリのインストール
まず、以下のコマンドで必要なパッケージをインストールします。
pip install --upgrade google-api-python-client
pip install google-auth
pip install google-auth-oauthlib
pip install google-auth-httplib2
認証情報の作成
Google Cloud Consoleで新しいプロジェクトを作成し、Drive APIを有効にして認証情報(credentials.json)をダウンロードします。
手順について下記の記事で解説しています。
関連記事:【GCP】GoogleCloudPlatformでプロジェクトを作成してAPI鍵の作成して有効化する
また合わせて下記のURLからGoogle driver API を有効化しておく必要があります
Google Cloud console
Spend smart, procure faster and retire committed Google Cloud spend with Google Cloud Marketplace. Browse the catalog of over 2000 SaaS, VMs, development stacks...
Google Drive APIを使用してファイルの一覧を取得する
以下は、PythonでGoogle Drive APIを使用してファイルの一覧を取得するサンプルコードです。
from apiclient.discovery import build from oauth2client.service_account import ServiceAccountCredentials from httplib2 import Http SCOPES = ['https://www.googleapis.com/auth/drive'] credentials = ServiceAccountCredentials.from_json_keyfile_name( r"C:\Users\oruka\~~~~~.json", SCOPES ) http_auth = credentials.authorize(Http()) folder_id = "1nq06fIdgEV8Iq6FbXdf2rUdgWv9e7wCO" drive_service = build('drive', 'v3', http=http_auth) condition_list = [ f"('{folder_id}' in parents)", "(name contains '.jpg')" ] conditions = " and ".join(condition_list) results = drive_service.files().list( q = conditions, fields = "nextPageToken, files(id, name)", pageSize = 100, ).execute() files = results.get('files', []) print(files)
特定のフォルダ直下の画像ファイル一覧を取得する
また条件を指定してファイル一覧を抽出することができます
例えば「 “(name contains ‘.jpg’)”」という条件式を追加するとファイル名の末尾が「.jpg」のもののみを取得することができます
## 指定するフォルダID検索 folder_id ="1_SJL0LGjt91-I3My16r7nWnU9o_OE7VA" condition_list = [ f"('{folder_id}' in parents)", "(name contains '.jpg')" ] conditions = " and ".join(condition_list) results = drive_service.files().list( q = conditions, fields = "nextPageToken, files(id, name)", pageSize = 100, ).execute() print(results)
まとめ
この記事で説明した方法を使用すると、Google Drive APIとPythonを用いて簡単にGoogle Driveのファイル一覧を取得することができます。
関連記事:YoutubeのAPIを使って動画再生回数などをスクレイピングする
コメント
[…] 関連記事:【Python】Google Drive APIを使ってファイル一覧を取得する方法 […]