G Suite 共有ドライブを Windows PC(ローカル)にマウント
背景
東京大学大学院新領域創成科学研究科では FApps が導入されており,G Suite の共有ドライブ(shared drive,以前はteam driveと呼ばれていました)上のデータにWindows 10 Pro ローカルの Python から PyDrive でアクセスする方法を検討していました.しかし,web で得られる情報通りには行かず,失敗に終わりました.おまけに conda でインストールした PyDrive のアンインストールにも失敗しました(固まる).最近,共有ドライブのデータにアクセスする方法として,Google ドライブファイルストリームで,Google 共有ドライブをローカルにマウントする方法があることを知りました.
Google ドライブファイルストリーム
FApps のアカウントでログインし,Google ドライブを開きます.マイドライブと共有ドライブがありますので,これらをローカルにマウントします.これはマウントでローカルへのファイルコピーは発生しませんので(同期する方法もあるようです),ローカル PC のディスクはほとんど食いません.
設定のアイコンをクリックし,「デスクトップ版ドライブをダウンロード」をクリックし,説明に従って,Windows アプリとしてインストールします(MACでもできるようです).
Windows Gドライブとしてマウント
インストールが成功すると,WindowsのGドライブ(Google Drive File Stream)が現れ,その中にマイドライブと共有ドライブのフォルダが存在していました.それぞれのフォルダを見ると,確かにGoogleドライブと同じフォルダやファイルが存在していました.もちろん大きなファイル等はアクセスに時間がかかります.
Python からGoogle ドライブのファイルにアクセス
ローカルにマウントされた Google ドライブのファイルに Python からアクセスします.Google ドライブのマイドライブと共有ドライブ内にテキストファイルtest_google_drive.txt
を用意し,それを Windows の Jupyter Notebook で読み込んでみます.
f1path = "G:/マイドライブ/test_google_drive.txt"
with open(f1path) as f:
s = f.read()
print(type(s))
print(s)
f2path = "G:/共有/Jun Sasaki/test_google_drive.txt"
with open(f2path) as f:
s = f.read()
print(type(s))
print(s)
両方とも以下のような結果が得られ成功しました.
<class 'str'>
Hello World1
Second line
EOF
非常に簡単にWindowsのPythonからGoogleドライブのファイルにアクセスできることが分かりました.