Colab に保存したファイルは消えてしまうので Google Drive に直接保存
Google Colaboratory(以下「Colab」)の作業ディレクトリは、何もしないでそのままだと /content
です。
でも、このディレクトリの下に置いたものは、Runtime 更新のタイミングで消去されてしまいますから、保存する必要があるファイル等は Colab に Google Drive(以下「Drive」)をマウントしてそこに保存する(*1) か local に download することになります(Fig. 1)。
そこで Google Colab と Google Drive の連携でより快適な生活を手に入れるためのメモです 😼
(*1) Colab に install した package/module も同様に消えてしまうので、Drive に module 等を install してそこに python path を通して利用する方法は Google Colab/Drive に pip インストール: これなら消えない😃 で紹介しましたが、実は Drive のマウントが意外にハードルになっているようなので、稿を改めて Colab/Drive の連携を説明しました。
Fig. 1: Google Drive のマウント
Files Pane を開いて♻️アイコンをクリックすると、Google Drive をマウントするための script が自動的に現れるので ▶️ をクリックし、現れる指示に従って認証(Colab から私の Drive を覗いても良いよ😀、という許可)を与えると、Google Drive の root directory
(MyDrive) が Colab の /content/drive
の下にマウントされます。
マウントされた Drive は Colab から直接アクセスできる
Colab にマウントされた Drive は Colab から直接アクセスできるようになります:
Python の中から Drive にアクセスすることができるようになり(Fig. 2)、もちろん、path はいつものように変数に代入して使うことができます(Fig. 2, 3, 5)。
Fig. 3 は Python から Drive にファイルを書き出した様子です。Drive に行ってディレクトリを直接確認すると、ファイルがちゃんと保存されていることがわかります😌(Fig. 4)。
また、後で述べるように Colab の shell からもアクセスすることができます(後出 Fig. 6)
Fig. 2: Python から Drive にアクセス
Drive 上のディレクトリやファイルの path は、わざわざ手打ちしなくても左の File Pane のディレクトリ/ファイル名を右クリックして Copy & Paste することができます。
Fig. 3: Colab の Python から Drive へのファイル書き出し
Fig. 4: Colab から書き出したファイルを Drive で確認したところ
Fig. 5: Drive から Colab の Python へのファイル読み込み
Colab shell からのファイル操作: Magic Commands
さて、いよいよ本編の Magic Commands のお話(ここまでが前置き😅)。
Magic Commands については IPython Magic Commands に詳しく書いてあるようですが(*2) とりあえず、Drive 上のファイルを less で読めるどうか試したところ、OK でした(Fig. 6)。
さらに調子に乗って mkdir, mv, rm, rm -r も試したところ、全部普通に使えました(Fig. 7, 8)。
このときのポイントは、 !
ではなくて、 %
を使う – つまり、%less
, %mkdir
, %mv
, %rm
, %m -r
。
何故 !
ではなくて、 %
を使うのか?どこが違うのか?
これは coding を学ぶ上で非常に重要な点だと思料されるところでありますが、細けぇことなので一切気にしないのが Cult Occult Coding™ 方式なのでどうかご放念いただけると幸いです。
(*2) つまり、よく読んでません 🙇♂️
Fig. 6: Magic Command(%) でファイルも読めた
less, more は、別窓が開いて結果が表示されました(しかし、Help って何だろう?)。vi, vim はダメでした(install できるのかしら?)。
なお、Python の中からではないので Python の変数(この例では変数 file_path
)は使えません。
Fig. 7: mkdir もできます
Fig. 8: ファイル移動/消去、ディレクトリ消去もできちゃう
Enjoy!
おまけ
今回使用した Python scripts の Jupyter Notebook 版を colab_drive_01.ipynb_.zip [2 KB] (Preview) に置いておきました。