4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Drive上のcsvファイルにpandasでアクセスする

Last updated at Posted at 2019-10-07

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に直接アクセスできるので個人使用な分には便利かなと思います。

4
8
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
4
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?