よしたく blog

ITエンジニアとして自分が知らなかったことをまとめています

Google Colaboratory で Google Drive に読み書きする

Google Colaboratoryで保存してあるファイルからデータを読み取ったり、計算した結果をファイルとして書き込んだりしたいタイミングがあった。今回はGoogle繋がりと無料で使える保存場所としてGoogle Driveを選択し、Google Colaboratoryでマウントしてから、ファイルを読み書きする方法を試す。

マウントと読み込み

まずはGoogle DriveGoogle Colaboratoryから使えるようにマウントする。 マウントの仕方は2種類あり、コードから実行する方法とブラウザからGUIでおこなう方法がある。

コードで実行する

まずはコードで実行する。

これだけでマウントが完了する。

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

今回は前回からの続きで、100本ノックのファイルをGoogle Driveに配置して、それを読み込んでいる。 ここはpandasで使えるpd.read_csv()を使ってCSVファイルを読み込んでいる。 Google Drive内の配置場所もキャプチャ画像として載せているので参考にしてください。

folder_name_1 = '/content/drive/My Drive/Colab Notebooks/100/1/'
customer_master = pd.read_csv(folder_name_1 + 'customer_master.csv') 
customer_master.head()

f:id:yoshitaku_jp:20200823133435p:plain

ブラウザからGUIで実行する

1 Google Colaboratoryの画面を表示する。左側のフォルダボタンをクリックする。

f:id:yoshitaku_jp:20200823140139p:plain

2 フォルダボタンをクリックすると少し広がる。その中からフォルダアイコンにGoogle Driveが重なっているものをクリックする。

f:id:yoshitaku_jp:20200823140211p:plain

3 クリックすると、アクセス許可を求められるので「Google ドライブに接続」をクリックする。その後、どのアカウントのGoogle Driveを連携するのかも止められるので選択する。

f:id:yoshitaku_jp:20200823140238p:plain

4 無事に連携ができると、drive/My DriveGoogle Driveが連携できていることが確認できる。

f:id:yoshitaku_jp:20200823141351p:plain

書き込み

読み込みの作業はPythonのコードで普通におこなえてGoogle Colaboratoryに依存していなかった。実は書き込みもマウントされていれば特に依存せずおこなえる。 せっかくなのでさきほど読み込んだコードを元に、その内容を別のディレクトリに保存してみる。

import pandas as pd 
folder_name_1 = '/content/drive/My Drive/Colab Notebooks/100/1/'
customer_master = pd.read_csv('/content/drive/My Drive/Colab Notebooks/100/1/customer_master.csv') 
customer_master.to_csv('/content/drive/My Drive/Colab Notebooks/100/tmp/customer_master.csv')

読み込んだときと同じpandasのメソッドであるpd.to_csv() で保存をおこなってみる。

f:id:yoshitaku_jp:20200823151247p:plain

無事に保存されている。