TL;DR
PythonでGoogleDrive上のファイルにアクセスできるようにすればファイル管理が楽になるなあと思ったので調べました。もっといい方法があれば教えていただきたいです。
1. Google Driveで共有リンクを取得
共有リンクを取得します。
2019年10月07日
取得したリンクは以下のようになっていると思います。
https://drive.google.com/open?id=xxxxxxxxxxxxxxxxxxxxx
これを以下の様に書き換えます。(open -> uc)
https://drive.google.com/uc?id=xxxxxxxxxxxxxxxxxxxxx
2020年7月22日
リンクを取得すると、以下のようなものが得られます。
https://drive.google.com/file/d/xxxxxxxxxxxxxxxxxxxxx/view?usp=sharing
これを、以下のように書き換えます。
https://drive.google.com/uc?id=xxxxxxxxxxxxxxxxxxxxx
まだ同様のAPIが使えるけど、いつまで使えるのかはいまいちわかりません。もう少しいい方法を考えたい。また、注意点として大きいファイルはウィルススキャンできないという理由でエラーが起きます。大きすぎるファイルを読み込む際は注意してください。
2. 読み込み
requests
を使ってファイルを取得して、io
でパースしたものをpandas
に読み込ませます。
import io
import requests
import pandas as pd
URL = "https://drive.google.com/uc?id=xxxxxxxxxxxxxxxxxxxxx"
r = requests.get(URL)
df = pd.read_csv(io.BytesIO(r.content))
GoogleDrive API的なのを使えばもっとスマートにできる気しかしませんが、とりあえずGoogleDrive上のCSVに直接アクセスできるので個人使用な分には便利かなと思います。