3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

Colaboratoryでローカルファイルの読み書き

Colaboratoryでデータを取得するにはいくつかの方法があります。
1. 数値を直接書き込む
2. HTTPでデータをダウンロードして取り込む
3. 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)

この処理をすると自動的にファイルのダウンロードが始まってしまうので、ループで多数のファイルが作成されないように気をつけて下さい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?