本日は Python の調査枠です。
Python で別ファイルにまとめた自作関数を利用する方法をまとめます。
以下の記事で作成した Hololens の RestAPI のアクセス処理を一例として利用します。
bluebirdofoz.hatenablog.com
自作関数をまとめる
以下のように処理部分のみをカンストして抽出した Python スクリプトを作成します。
・HttpRequest.py
# import import requests import base64 import os # 最大電池容量と残電池容量の数値を取得 # username:DevicePortalアクセスのユーザ名 # password:DevicePortalアクセスのパスワード # ipaddress:DevicePortalアクセスのIPアドレス def GetBattery(username='USERNAME',password='PASSWORD',ipaddress='127.0.0.1:10080'): print('--------------------------- START ---------------------------') # DevicePortal接続のための設定項目 # isVerify:証明書の利用(DevicePortalの場合は自己証明書なので無視する) isVerify = False # RestAPIアクセスのURLを作成 api = '/api/power/battery' url = 'http://' + ipaddress + api # RestAPIのURLと設定を指定してGET実行 response = requests.get(url, auth=(username, password), verify = isVerify) # RestAPIの応答jsonメッセージを受信 downloadData = response.json() # 受信したjsonメッセージを標準出力で確認 print('--------------------------- RESPONSE JSON ---------------------------') print(downloadData) # jsonメッセージから必要なデータを取得 # 最大電池容量 maximumKey = 'MaximumCapacity' maximumBattery = downloadData[maximumKey] # 残電池容量 remainingKey = 'RemainingCapacity' remainingBattery = downloadData[remainingKey] # パーセンテージの計算 str = '{:.2%}'.format(remainingBattery / maximumBattery) # 取得したデータを標準出力で表示 print('--------------------------- RESULT ---------------------------') print('MaximumCapacity:{0},RemainingCapacity:{1},Battery:{2},'.format(maximumBattery, remainingBattery,str)) print('--------------------------- END ---------------------------')
同じディレクトリにある場合
作成した Python スクリプトが呼び出し元と同じディレクトリに存在する場合の方法です。
以下の import 文で利用可能です。
・Main1.py
# 同ディレクトリのPythonスクリプトをインポート import HttpRequest # 実行指定で呼び出されているかチェック if __name__ == "__main__": # 関数を呼び出し HttpRequest.GetBattery()
フォルダの中に含まれている場合
作成した Python スクリプトが呼び出し元のディレクトリにあるフォルダ配下にある場合の方法です。
以下の import 文で利用可能です。
・Main2.py
# フォルダ配下のPythonスクリプトをインポート from HoloLensAPI import HttpRequest # 実行指定で呼び出されているかチェック if __name__ == "__main__": # 関数を呼び出し HttpRequest.GetBattery()
因みに以下のように import することで関数名で直接呼び出すことも可能です。
・Main3.py
# フォルダ配下のPythonスクリプトの関数を直接インポート from HoloLensAPI.HttpRequest import GetBattery # 実行指定で呼び出されているかチェック if __name__ == "__main__": # 関数を呼び出し GetBattery()