LoginSignup
6
8

More than 5 years have passed since last update.

google driveをコマンドラインで操作する

Last updated at Posted at 2019-02-11
  • gdriveの具体的な使い方
  • gdriveでOCRを利用する方法
  • jupyter notebookからgdriveをつかう

[gdrive] 英語になるが、ここに記述していないサンプルはこちら

用意

gdrive - for 64bit
Windows7 - 64bit

導入

githubからダウンロード
Cドライブにgdriveフォルダを作って放り込んでおく。
無題.png

使い方

普段コマンドプロンプト使用しない人用.
C:\user>cd C:\gdrive
C:\gdrive>
  • Googleドライブの中身を知る
C:\gdrive> gdrive list
Id                                             Name              Type   Size      Created
abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz1   filename1.exe      bin    60 Mb     2019-02-11 00:00:00
abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz2   filename2.exe      bin    60 Mb     2019-02-11 00:00:01
abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz3   filename3          doc    60 Mb     2019-02-11 00:00:02
abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz4   filename4.exe      dir    60 Mb     2019-02-11 00:00:03

ダウンロード

  • ファイル(bin)のダウンロード
C:\gdrive> gdrive download abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz1
Downloading ファイル名.* -> ファイル名.*
Downloaded abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz1 at 1000 KB/s, total 60 MB

・ファイル名はつかえない

  • ディレクトリのダウンロード
C:\gdrive> gdrive download abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz4 -r もしくは --recursive

・最後に -r もしくは --recursive オプションをつける必要がある
・ファイル名はつかえない

アップロード

  • ファイルのアップロード
C:\gdrive> gdrive upload ファイル名.*
  • ディレクトリのアップロード
C:\gdrive> gdrive upload ディレクトリ名.* -r もしくは --recursive

・最後に -r もしくは --recursive オプションをつける必要がある

OCRをつかう

txt形式に直接変換することはできない。
あくまでもgoogle document形式となる

C:/gdrive> gdrive import ファイル名.png -p abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz3

・ファイル名はつかえない

コマンドラインからgdriveを使う

gdrive.
import subprocess
cmd = "gdrive list"
subprocess.call(cmd, shell=True) 

別記事でsubprocessモジュールについていろいろ確認する予定

使用制限

Failed to get file: googleapi: Error 403: Rate Limit Exceeded, rateLimitExceeded

こういうようなエラーがでることがあるが、GoogleAPIには一日の使用回数に制限がある。
yoZku.png
1,000,000,000 回/一日
1000 回/100秒/1人

とのこと。

細かい設定(query)について

各コマンドにqueryがつかえる。
queryは、ファイル・フォルダに含まれている文字レベルでの検索・操作を可能にする機能。

たとえばこんなことができる。

フォルダにsがはいっているものをリストに出力.
C:/gdrive> gdrive list -q "name contains 's'"

これはめちゃめちゃ便利。

指定ファイルをダウンロードするときは

フォルダにsがはいっているものをリストに出力.
C:/gdrive> download query "name contains 's'"

mimeで拡張子を決めてからダウンロード.
C:/gdrive> gdrive export --mime text/plain abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgz3

mimeの設定についてはこちら
Corresponding MIME typeの列にいろいろと書いてあります。
・HTMLでダウンロードしたいなら、text/htmlとか。
・PDFでダウンロードしたいなら、application/pdfとか。
・エクセルでダウンロードしたいなら、application/vnd.openxmlformats-officedocument.spreadsheetml.sheetとか。

まとめ、今後

ファイル、フォルダ指定にファイル名フォルダ名が直接つかえないことがあり、そこが一番めんどうだった。
gdrive list命令でIDを取得できるなら、それを使えということか。

バッチファイルでコマンドラインの自動化ができるようなので、今後一連の流れを記述したものを作っていきたい。

参考

Qiita - Google が提供する API のリクエスト上限数一覧
Qiita - pythonanywhereでファイルのバックアップにGoogleドライブを使う方法
stackoverflow - What is the limit on Google Drive API usage?

6
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8