Colaboratoryで簡単便利にファイルのやり取りをする方法

まだまだ全然情報が無いので,もっと良い方法があるかもしれないけど,
今のところ,いろいろ試していてこれが一番簡単で便利そう.
(その他の方法については,関連を参照)

参考:
From colab directly manipulate sqlite3 format data in Google drive – StackOverflow

 
 

FUSEを用いてGoogle Driveをマウントしてしまう.
Google DriveをVM内に仮想ドライブとしてマウントしてしまうので,
普通のLinuxマシンを操作するのと同じようにファイルのやり取りができる様になる.

ただ,マウントするにあたって,2回認証作業が必要になるので,
(といっても,URLをクリックして認証キーをコピペするだけだが)
毎回毎回これをやるのはちょっと面倒だけど,一旦マウントしてしまえば,
そのまま(VMのライフタイムである12時間以内は)Google Driveを
ローカルドライブの様に処理できるので覚えておくとすっごい便利だと思う.

以下,参考記事をなぞるだけだけど.

# Install a Drive FUSE wrapper.
# https://github.com/astrada/google-drive-ocamlfuse
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse

まず,必要なものをインストール.(コピペして実行するだけ)

# Generate auth tokens for Colab
from google.colab import auth
auth.authenticate_user()

1回目の認証作業.表示されるURLをクリックして,キーをコピペ.

# Generate creds for the Drive FUSE library.
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

2回目の認証作業.表示されるURLをクリックして,キーをコピペ.

# Create a directory and mount Google Drive using that directory.
!mkdir -p drive
!google-drive-ocamlfuse drive

ドライブをマウント.
以下の様に,

!ls

datalab/ drive/

Google Driveが「drive/」として認識される.

cd drive
!ls

—Google Drive内のファイル名が列挙(略)—

という感じ.

cd Colab Notebooks

/content/drive/Colab Notebooks

して「Colab Notebooks」を作業ディレクトリにしておけば,
PCとVMの出入り口として活用できて,凄く便利.

例えば,

with open('sample.txt', 'w') as f:
  f.write('sample text')

という感じでファイルを書き出した時,VM内に書き出すと保存が大変だけど,
作業ディレクトリが「Colab Notebooks」の場合,

~\Google Drive\Colab Notebooks

にファイルがあるので,取り出し自由.
VMにアップロードしたい時も,「Colab Notebooks」にファイルを入れれば良い.
ローカルのPythonと同様に処理ができるのでちょっとした処理の場合は,
認証の手間の方が利便性を上回るかも知れないけど,
頻繁にやり取りする場合はこの方法が今のところ一番便利そう.

でも,ぶっちゃけ……,標準で「Colab Notebooks」をこういう感じにしてくれれば良いのにね.

 
 
関連:
Colaboratoryについて(まとめ)

 
 
追記:
アンケート的なものが来ていたので,星4にして上記の件を要望として出してみた.
まあ,一個人のフィードバックなので反映される可能性は低いのと,
拙い英語で正直まだ日本語でフィードバック出した方が
通じたんじゃないかって後悔する位なので,あくまで気持ち程度だけど.

Colaboratoryの目的の一が「学習用」である以上,
ファイルのやり取りがバリアになってしまってはいけないと思うし,
いちいち「google.colab.files.upload/google.colab.files.download」
するんじゃなくて(極端な言い方をすればI/Oを意識する事なく),
ローカルドライブの様に利用できる事が望ましいよなと.

広告
カテゴリー: 未分類 パーマリンク

Colaboratoryで簡単便利にファイルのやり取りをする方法 への4件のフィードバック

  1. ピンバック: Colaboratoryについて(まとめ) | 粉末@それは風のように (日記)

  2. ピンバック: Colaboratory便利なのに…… | 粉末@それは風のように (日記)

  3. ピンバック: ColaboratoryでPython3(Python 3.6.3)が使える様になっていた | 粉末@それは風のように (日記)

  4. ピンバック: Google Colaboratory の ローカルランタイムへの接続 | IT技術情報局

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中