Colab から Google ドライブにアクセスする方法 【Python プログラミング入門】

5 min
広告_零号機

こんなお困りごとないですか?

大学生

大学生

Google Colaboratoryを使ってプログラミングを始める方法は解ったけど、自由にファイルを読み書きしたいな。

でも、クラウドサービスだから良くわからないな。

解決方法は?

あるよ。

忠犬SE

忠犬SE

実は、Google Colaboratory(略称:Colab)はUbuntuというLinuxOSで動作していて、Googleドライブをマウントすることで、Googleドライブにアクセスすることが可能になるんだ。

だから、Google ドライブ上にファイルを作成したり、Google ドライブ上のファイルを読み込んだりできるんだ。

忠犬SE

忠犬SE

百聞は一見に如かず。実際にColabについてコードを実行しながら詳しくみてみよう。

準備として、下記記事などを参考にColabで新しいノートブックを作成してね。もしくは、githubにソースを公開しておりますので下記リンクをクリックしてください。

githubで開く

Colabで開く

忠犬SE

忠犬SE

流れ

  • 初期状態を確認①②
  • sample_dataフォルダとは?
  • Google ドライブをマウントする
  • Google ドライブを確認する
  • Google ドライブのファイルにアクセスする
  1. STEP

    初期状態を確認

    Colabの左側に配置されているアイコンの上から4番目をクリックすると下記のようにアクセス可能なフォルダが見えます。

  2. STEP

    初期状態を確認②

    次に、Pythonコードを使って確認します。下記のコードをコピーしてコードセルに貼り付けて実行します。

    import os
    
    print("カレントディレクトリは[" + os.getcwd() + "]です")
    print("配下のディレクトリは" + str(os.listdir()) + "です")

    初期状態は、contentフォルダにいて、配下には.configというファイルとsample_dataというフォルダがあることが解ります。

    【補足】カレントディレクトリについて

    カレントディレクトリ(カレントワーキングディレクトリとも呼びます)は、実行中のプロセスがファイルシステム中で現在位置として指示しているディレクトリとのことです。

    相対パスでファイルやディレクトリなどを指定する際の基準の位置となります。

    例)sample_dataフォルダの指定方法について

    絶対パス⇒/content/sample_data

    相対パス⇒./sample_data ※”.”は相対パスでカレントディレクトリを指定するときに使用します

  3. 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アカウントでブラウザ経由で操作していることが解りました。

  4. 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」が出力されたらマウント成功です。

  5. 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/”フォルダにいるようです。

  6. 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

忠犬SE

【付録】さらに理解を深めたい方たちへ

  • 今回LINUXという言葉が出てきましたが、LINUXについての基礎知識を身に付けるには下記がおすすめです。
    タイトルにある”動かしながら”を実践するためにはLINUX OSが動かせる環境が必要になるので最初は飛ばして読んでも良いかなとは思います。

動かしながらゼロから学ぶ Linuxカーネルの教科書 [ 末安 泰三 ]

価格:3,080円
(2021/9/20 18:26時点)
感想(0件)

  • クラウドサービスを活用するにしても、ネットワークについての理解があるのとの無いのとでは、理解の深さが違ってきます。ネットワークについての理解を深めたい方には下記がダントツでおすすめです。

マスタリングTCP/IP-入門編ー(第6版) [ 井上 直也 ]

価格:2,420円
(2021/9/20 18:21時点)
感想(1件)

Next Step

ご参考

ちなみに今回は下記 Chromebook を使用しました。
14.0型フルHD × Core i3 × メモリ8GB を満たす数少ない端末です。
軽くて持ち運びしやすく開発に耐えうるスペックなのでおすすめです。

富士通|FUJITSU ノートパソコン FMV Chromebook 14F(タッチパネル) ダーククロム FCB143FB [14.0型 /Chrome OS /intel Core i3 /メモリ:8GB /SSD:128GB /タッチパネル対応 /2021年12月モデル]【point_rb】

価格:70,510円
(2022/2/23 18:35時点)
感想(1件)

Chromebook でプログラミングを始める方法については下記記事をご参考下さい。

広告_零号機-エリア2
kewton

kewton

大学院卒業後、某大手SIerで10年以上SEとして従事。
社会人3年目までに基本情報・応用情報技術者、データベーススペシャリスト、簿記3級・2級を取得。
基幹系システム・IoTシステム開発のプロジェクト経験多数。AI活用システムの企画・プロト開発経験あり。
強みは、プロマネだけでなく自身で開発も実施してきたこと。
【扱える言語】
C#、java、python、javascript、Excel VBA
【扱えるDB】
oracle、sql server、postgreSQL、mongoDB

FOLLOW

関連記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA