pythonでファイル入出力

Pythonを勉強するために、PythonでGoogle Driveにファイル転送スクリプトを作り始めました。実行する度に手動で認証してファイル転送するGoogleのサンプルプログラムがあるので、それを改造して自動処理できるように、認証情報をファイルに入出力するスクリプトを作りました。

毎回手動で認証するサンプルスクリプト

drive.py : Google Drive SDK Python Quickstart Sample

Pythonの基礎

ドットインストールさんのPython基礎講座を見たのでPythonの雰囲気が分かりました。短時間でスタートアップできるので、とても助かります。

あとは、やりたいことをぐぐって、必要なことは公式サイトで確認すればなんとかなりそうです。

Google Driveの認証情報

GoogleのドキュメントにあるRetrieving and Using OAuth 2.0 Credentialsのサンプルコードのコメントを見ると、認証情報はjson形式に変換して格納しろと書いてあります。

 def get_stored_credentials(user_id):
  """Retrieved stored credentials for the provided user ID.

  Args:
    user_id: User's ID.
  Returns:
    Stored oauth2client.client.OAuth2Credentials if found, None otherwise.
  Raises:
    NotImplemented: This function has not been implemented.
  """
  # TODO: Implement this function to work with your database.
  #       To instantiate an OAuth2Credentials instance from a Json
  #       representation, use the oauth2client.client.Credentials.new_from_json
  #       class method.
  raise NotImplementedError()


def store_credentials(user_id, credentials):
  """Store OAuth 2.0 credentials in the application's database.

  This function stores the provided OAuth 2.0 credentials using the user ID as
  key.

  Args:
    user_id: User's ID.
    credentials: OAuth 2.0 credentials to store.
  Raises:
    NotImplemented: This function has not been implemented.
  """
  # TODO: Implement this function to work with your database.
  #       To retrieve a Json representation of the credentials instance, call the
  #       credentials.to_json() method.
  raise NotImplementedError()

 

・store_credentials()

To retrieve a Json representation of the credentials instance, call the credentials.to_json() method

 

・get_stored_credentials()

To instantiate an OAuth2Credentials instance from a Json representation, use the oauth2client.client.Credentials.new_from_json class method.

 

認証情報のファイル入出力スクリプト 

json形式の認証情報を受け取ってファイルに書き込む関数storeJsonCredential()と、ファイルに保管された認証情報を返すreadJsonCredential()を作りました。

# coding: UTF-8

CREDENTIAL_FILE = 'jsonCredential.txt'

def storeJsonCredential(jsonStr):
	f = open(CREDENTIAL_FILE, 'w')
	f.write(jsonStr)
	f.close()

def readJsonCredential():
	f = open(CREDENTIAL_FILE)
	json_credential = f.read()
	f.close()
	return json_credential

 記述方法は、PHPなんかと同じ感じですね。

このモジュールを使って、Googleのサンプルスクリプトを改造していこうと思います。

Pythonスクリプトを作ってみて

ステートメントの区切りがないのが不思議な感じです。ついつい、”;”とか、”}”とかを入力してしまいそうになります。右手の小指が行き場を失って、空中で痙攣しています(笑)

この書き方に慣れると、きっととても楽なんでしょうね。


関連記事