ColabでGoogleドライブ内のファイルを読み込む

Google Colaboratory(以下,Colab) で Google ドライブ内のディレクトリから .py, .csv ファイルなどを読み込む方法を紹介します.

Colab は Jupyter 同様 .ipynb ファイルですが,個人的に Notebook 形式より CUI で実行するほうが慣れているので,Colab を使ってテストするときなどは .ipynb から .py を呼び出して使っています.

自作モジュールを使う場合などに参考にしてください.

ディレクトリとファイル例

My Drive/colab
├── data/
│   └── sample_data.csv
├── main.ipynb
└── sample.py
# sample.py (Python 3.7)

import numpy as np

def main():
    colab_path = '/content/drive/My Drive/colab'
    data = np.loadtxt(f'{colab_path}/data/sample_data.csv', delimiter=',')

ドライブのマウント

自作ファイルを読み込むためには Colab が Google ドライブにアクセスする権限を付与する必要があります.

from google.colab import drive
drive.mount('/content/drive')

実行すると認証コードを入力するように求められるので,指示に従って認証ページのコードをコピペ入力します.

モジュールをインポートする

認証が通ると Google ドライブが Colab にマウントされるので,自作モジュールを追加する場合は対象のパスをシステムのパスに追加して Python からアクセスできるようにします.

import sys
sys.path.append('/content/drive/My Drive/colab')

あとはファイルを import すればよいだけです.

import sample
if __name__ == '__main__':
    sample.main()

# or

from sample import main
if __name__ == '__main__':
    main()

CSV ファイルなどを読み込む

通常は相対パスで設定できますが,Colab ではドライブ上の .ipynb からの相対パスが利用できないっぽいです.

絶対パスを指定することで読み込むことができます.

data = np.loadtxt('/content/drive/My Drive/colab/data/sample_data.csv', delimiter=',')

ドライブ内に新たにファイルを追加したときの注意点

Colab 実行中にドライブにファイルを新しく入れたり作ったりしても,ランタイム起動時の設定で動いているので反映されません.

一度 [Restart] > [Restart rumtime] でランタイムを再起動してください.