PythonでGoogle Drive上のファイルを読み込む3つの方法

IT・プログラミング

Google Drive上に保存されたファイルをPythonで読み込む方法は複数あります。本記事では、以下の3つの方法についてCSVファイルを例に具体的なに解説します。

Google Drive APIを使用してCSVファイルを読み込む方法

まずは、APIを使う方法です。
こちらについての詳細は以下の記事で解説しているので、あわせて確認してください

https:/lifetechia.com/google-drive-api-python/

Google Drive APIの設定

  1. Google Cloud Consoleにアクセス: Google Cloud Consoleにログインし、新しいプロジェクトを作成します。
  2. APIとサービスを有効化: 「APIとサービス」から「ライブラリ」に移動し、「Google Drive API」を検索して有効にします。
  3. OAuth 2.0 クライアントIDを作成: 「認証情報」から「OAuth 2.0 クライアントID」を作成し、認証情報をダウンロードします。これにはcredentials.jsonというファイルが含まれます。

詳細は以下のAPIの取得を確認してください。

https:/lifetechia.com/google-drive-api-python/

必要なライブラリをインストール

以下のコマンドで必要なライブラリをインストールします。

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client pandas

APIを使ってCSVファイルを読み込む

以下のコードを使ってGoogle DriveからCSVファイルを読み込むことができます。
先ほど取得したcredentials.jsonのパスを変更してください。
また、ファイルIDを入力してください。

ファイルIDはファイルURLの以下の部分になります。

https://drive.google.com/file/d/{file_id}/view?usp=sharing
from google.oauth2 import service_account
from googleapiclient.discovery import build
import pandas as pd
import io

# 認証情報の設定
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
SERVICE_ACCOUNT_FILE = 'path/to/credentials.json'

creds = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# Google Drive APIの初期化
service = build('drive', 'v3', credentials=creds)

# ファイルIDを指定
file_id = 'your_file_id_here'

# CSVファイルの内容を取得
request = service.files().get_media(fileId=file_id)
fh = io.BytesIO(request.execute())

# pandasで読み込み
df = pd.read_csv(fh)
print(df.head())

共有リンクからCSVファイルを読み込む方法

続いて、ファイルをリンク共有できる場合に、共有リンクを使って取得する方法です。

共有リンクの取得

Google Driveで対象ファイルを右クリックし、「共有」を選択して「リンクを取得」します。リンクの形式はhttps://drive.google.com/file/d/FILE_ID/view?usp=sharingです。

共有リンクからCSVファイルを読み込む

以下のコードで共有リンクからCSVファイルを直接読み込むことができます。

import pandas as pd

# 共有リンクのファイルIDを指定
file_id = 'your_file_id_here'

# ダウンロードURLの生成
url = f'https://drive.google.com/uc?id={file_id}'

# pandasでCSVファイルを読み込み
df = pd.read_csv(url)
print(df.head())

gdownライブラリを使ってCSVファイルを読み込む方法

共有リンクでの取得は非常に簡単ですが、大きなファイルの場合、うまく読み込めず、以下のようなデータがダウンロードされてしまうことがあります。
その場合には、gdwonが便利です。

gdownのインストール

以下のコマンドでgdownをインストールします。

pip install gdown

gdownを使ってCSVファイルをダウンロードし、読み込む

以下のコードでCSVファイルをGoogle Driveからダウンロードし、pandasで読み込むことができます。

import gdown
import pandas as pd

# ファイルIDを指定
file_id = 'your_file_id_here'

# ダウンロードURLの生成
url = f'https://drive.google.com/uc?id={file_id}'

# gdownでCSVファイルをダウンロード
output = 'file.csv'
gdown.download(url, output, quiet=False)

# pandasでCSVファイルを読み込み
df = pd.read_csv(output)
print(df.head())

3つの方法のメリット/デメリット

ここまで紹介した方法を使って、Google Drive上のCSVファイルをPythonで簡単に読み込むことができます。
それぞれの方法のメリットとデメリットを比較してみます。

方法 メリット デメリット
Google Drive APIを使用 – 高度なカスタマイズが可能
– APIを通じて直接アクセス
– 認証・認可の制御ができる
– 設定が複雑
– APIキーやOAuth 2.0の設定が必要
– 認証情報の管理が面倒
共有リンクから読み込む – 簡単にリンクを取得して利用できる
– 特別な設定が不要
– リンクの有効期限や共有設定に依存
– API機能に比べると制限が多い
– 重たいデータに対応しない
gdownを使用 – 簡単にファイルをダウンロードできる
– 使い方がシンプル
-大きなファイルにも対応
gdownライブラリのインストールが必要
– アクセス制御が難しい
– ダウンロードする必要がある

各方法には異なる利点と欠点があるので、目的や状況に応じて最適な方法を選んでください。

コメント

タイトルとURLをコピーしました