問題:Google Colaboratory における「ローカル」の扱い
Python初学者が最初に触れるファイル入出力のコードは「ローカル」のファイルを操作するものになることが多いが、Google Colaboratory ではその「ローカル」が Google Drive のルートのような初学者にとっての直感的位置にはなく、ある種の工夫をする必要がある。
解決方法:files.upload()
とfiles.download()
概要
- 入力準備
files.upload()
- 出力確認
files.download()
詳細
入力準備
Colaboratory にアップロードした.ipynb
ファイルは Google Drive のルート(直下の場所)に置かれるが、その場所がそのまま Colaboratory 実行時のローカルの参照先ということには残念ながらならない。Colaboratory のローカルにファイルを置くには別途コード上からファイルのアップロードが必要となる。ファイルアップロードには以下のコードを実行する。
from google.colab import files
files.upload()
これを実行するとアップロードファイルの選択ボタンが出現する。あとはその選択ボタンを利用して通常のWebサイトにファイルをアップロードするのと同じ要領で上げたいファイルを選択、決定すればアップロードが完了する。アップロードされたファイルは以後のセルで利用可能となる。この状態で
with open("【入力ファイル名】", 'r') as f:
print(f.read())
などとやればエラーなく実行できる。
出力確認
ローカルへのファイルの出力は、通常通り
with open("【出力ファイル名】", "w") as f:
f.write("【出力内容】")
などとすれば Colaboratory のローカルに書き込まれる。正常に書き込まれたかどうかの確認は改めて read で読み込んで表示するなどしても良いが、より直感的にファイルとして作成されたことを確認するには、ローカルに作成されたファイルをダウンロードするのが良い。
from google.colab import files
files.download("【出力ファイル名】")
上記コードをセルにして実行すればダウンロードが行われる。もちろん import 文は以前行っている場合には不要である。