Colaboratoryでデータを取得するにはいくつかの方法があります。
- 数値を直接書き込む
- HTTPでデータをダウンロードして取り込む
- Google DriveのAPIを使用してデータを取り込む
などです。
自分の手元にある比較的大きなデータを扱いたいが、サーバーにアップロードしたり面倒な手続きを経て余計なAPIを使いたくない場合には、第四の方法としてローカルファイルの直接の読み書きを行うことができます。
以下の例ではファイル名をキーとしてファイルのバイナリを読み込みそのサイズを表示します。ファイル名にはディレクトリの名前を含みません。
import google.colab
for filename, contents in google.colab.files.upload():
print('{}\t{} bytes'.format(filename, len(contents))
バイナリを内容に応じた形で処理するにはそれぞれのファイル形式ごとの方法をとることになります。
また、Colaboratoryの処理結果をファイルで得たい時はgoogle.colab.files.downloadを用います。
import tempfile
import google.colab
filename = tempfile.mktemp(".txt")
with open(filename, "w") as fo:
fo.write("Hello Colaboratory File I/O.")
google.colab.files.download(filename)
この処理をすると自動的にファイルのダウンロードが始まってしまうので、ループで多数のファイルが作成されないように気をつけて下さい。