目次
こんなお困りごとないですか?
大学生
Google Colaboratoryを使ってプログラミングを始める方法は解ったけど、自由にファイルを読み書きしたいな。
でも、クラウドサービスだから良くわからないな。
解決方法は?
あるよ。
忠犬SE
実は、Google Colaboratory(略称:Colab)はUbuntuというLinuxOSで動作していて、Googleドライブをマウントすることで、Googleドライブにアクセスすることが可能になるんだ。
だから、Google ドライブ上にファイルを作成したり、Google ドライブ上のファイルを読み込んだりできるんだ。
忠犬SE
百聞は一見に如かず。実際にColabについてコードを実行しながら詳しくみてみよう。
準備として、下記記事などを参考にColabで新しいノートブックを作成してね。もしくは、githubにソースを公開しておりますので下記リンクをクリックしてください。
忠犬SE
流れ
- 初期状態を確認①②
- sample_dataフォルダとは?
- Google ドライブをマウントする
- Google ドライブを確認する
- Google ドライブのファイルにアクセスする
- STEP
初期状態を確認
Colabの左側に配置されているアイコンの上から4番目をクリックすると下記のようにアクセス可能なフォルダが見えます。
- STEP
初期状態を確認②
次に、Pythonコードを使って確認します。下記のコードをコピーしてコードセルに貼り付けて実行します。
import os print("カレントディレクトリは[" + os.getcwd() + "]です") print("配下のディレクトリは" + str(os.listdir()) + "です")
初期状態は、contentフォルダにいて、配下には.configというファイルとsample_dataというフォルダがあることが解ります。
【補足】カレントディレクトリについて
カレントディレクトリ(カレントワーキングディレクトリとも呼びます)は、実行中のプロセスがファイルシステム中で現在位置として指示しているディレクトリとのことです。
相対パスでファイルやディレクトリなどを指定する際の基準の位置となります。
例)sample_dataフォルダの指定方法について
絶対パス⇒/content/sample_data
相対パス⇒./sample_data ※”.”は相対パスでカレントディレクトリを指定するときに使用します
- STEP
sample_data フォルダとは?
やや本筋からはそれますが、sample_dataフォルダにアクセスしてみましょう。
下記コードをコピーしてコードセルに貼り付けて実行します。
import pandas as pd df_csv = pd.read_csv('sample_data/mnist_test.csv') df_csv
sample_dataフォルダには直接アクセスできそうです。
次なる疑問は、空き容量はどれくらいありそうなのか?
これも確認してみましょう。 下記コードをコピーしてコードセルに貼り付けて実行します。
# 空き容量確認 stat = os.statvfs("/content/sample_data") capacity_mb = stat.f_bsize * stat.f_bfree / 1024 / 1024 print(str(round(capacity_mb/1024,2)) + "GB")
空き容量は64.19GBのようです。Colabは一体何者?俄然興味が沸いてきました。
もう少し見てみましょう。
ファイルを開いて、sample_dataフォルダの一つのうえにカーソルをあ合わせると「1つ上のレベルに移動」が表示されるのでクリックします。
たくさんフォルダが見えました。何かのOSのように見えます。
次にOSを確認してみましょう。
下記コードをコピーしてコードセルに貼り付けて実行します。
# OS確認 import platform print(platform.platform())
どうやら、OSはUbuntuのようです。
つまり、ColabはUbuntu上にPythonの実行環境が構築されていて、Googleアカウントでブラウザ経由で操作していることが解りました。
- STEP
Google ドライブをマウントする
とうとう本題です。
Google ドライブをマウントします。
# Googleドライブのマウント from google.colab import drive drive.mount('/content/drive')
“https://accounts.google.com/・・・”のリンクをクリックします。Googleアカウントでログインして進めていくと、「このコードをコピーし、アプリケーションに切り替えて貼り付けてください。」という画面が表示されるので、コードをコピーしてColabの出力セルの”Enter your authorization code:”のテキストボックスにてペーストしてEnterキーを押下します。「Mounted at /content/drive」が出力されたらマウント成功です。
- STEP
Google ドライブを確認する
再度、下記コードをコピーしてコードセルに貼り付けて実行します。
import os print("カレントディレクトリは[" + os.getcwd() + "]です") print("配下のディレクトリは" + str(os.listdir()) + "です")
新たにdriveフォルダが増えていることが解ります。
contentフォルダの配下を確認していくと解りますが、どうやら”/content/drive/MyDrive/Colab Notebooks/”にColabのファイル(*.ipynb)が格納されているようです。
やや混乱するかもしれませんが、Colabはファイル自体は”/content/drive/MyDrive/Colab Notebooks/”に格納されて初期状態は”/content/”フォルダにいるようです。
- STEP
Google ドライブのファイルにアクセスする
sample_dataフォルダにあったファイルをGoogle ドライブのコピーします。
下記コードをコピーしてコードセルに貼り付けて実行します。
# ファイルのコピー import shutil # rを先頭に記述することでエスケープが不要 path1 = r"/content/sample_data/mnist_test.csv" path2 = r"/content/drive/MyDrive/Colab Notebooks/mnist_test.csv" shutil.copy(path1, path2)
Google ドライブにコピーされているので、実際に確認してみて下さい。
先ほどと同様にCSVファイルを読み込んでみましょう。
下記コードをコピーしてコードセルに貼り付けて実行します。
# Google ドライブのファイルにアクセス import pandas as pd df_csv = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/mnist_test.csv') df_csv
Google ドライブに格納されているファイルにアクセスできたと思います。
最後に
本日は、ColabにGoogle ドライブをマウントしてみました。
他にも、Colabについて色々とコードを交えて実践してみました。ご参考になりましたらtwitterをフォローしてSNSでシェアして頂ければ幸いです。
さらに理解を深めたいという方は、↓も見てね。
忠犬SE
【付録】さらに理解を深めたい方たちへ
- 今回LINUXという言葉が出てきましたが、LINUXについての基礎知識を身に付けるには下記がおすすめです。
タイトルにある”動かしながら”を実践するためにはLINUX OSが動かせる環境が必要になるので最初は飛ばして読んでも良いかなとは思います。
動かしながらゼロから学ぶ Linuxカーネルの教科書 [ 末安 泰三 ] 価格:3,080円 |
- クラウドサービスを活用するにしても、ネットワークについての理解があるのとの無いのとでは、理解の深さが違ってきます。ネットワークについての理解を深めたい方には下記がダントツでおすすめです。
マスタリングTCP/IP-入門編ー(第6版) [ 井上 直也 ] 価格:2,420円 |
Next Step
ご参考
ちなみに今回は下記 Chromebook を使用しました。
14.0型フルHD × Core i3 × メモリ8GB を満たす数少ない端末です。
軽くて持ち運びしやすく開発に耐えうるスペックなのでおすすめです。
価格:70,510円 |
Chromebook でプログラミングを始める方法については下記記事をご参考下さい。