エラーや実行完了をLINEで通知する【Python】
はじめに
機械学習などをやっていると1つのプログラムの実行に数日かかるなんてことは珍しくありません.
プログラムの実行状況が気になり,数時間おきに端末を開く.
そんな日々を送っていませんか?
そんな人のために,今回はPythonプログラムのエラーや実行完了をLINEで通知する方法を紹介します.
LINEアカウントを持っている人なら10分程度でできるので是非!
LINE Notifyの準備
通知を送るためにLINEが提供するLINE Notifyというサービスを使います.
まずは,ここからトークンを発行します.
https://notify-bot.line.me/my/
右上のログインボタンからLINEアカウントにログイン後,以下のような手順でトークンを発行&コピーします.
トークン名は好きに設定してください.今回は「実行結果通知」としています.
これでLINE Notifyの準備は完了です.
LINE通知用のPythonプログラム
以下のプログラムをコピペし,トークンの部分を変更するだけでOKです.
(pip install requests
が必要かも)
import requests
# LINEに通知する関数
def line_notify(message):
line_notify_token = 'ここにトークンをペーストしてください'
line_notify_api = 'https://notify-api.line.me/api/notify'
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token}
requests.post(line_notify_api, data=payload, headers=headers)
if __name__ == '__main__':
message = "Hello world!"
line_notify(message)
python line_notify.py
を実行すると,LINEに"Hello world!"とメッセージが届くはずです.
エラーや実行完了を通知
あとは,例外処理などと組み合わせて通知するだけです.
試しに以下のプログラムを実行してみます.
import requests
# LINEに通知する関数
def line_notify(message):
line_notify_token = 'ここにトークンをペーストしてください'
line_notify_api = 'https://notify-api.line.me/api/notify'
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token}
requests.post(line_notify_api, data=payload, headers=headers)
# a/bを計算する関数
def foo(a, b):
return a / b
if __name__ == '__main__':
try:
ans = foo(1, 0)
except Exception as e:
line_notify(e)
else:
line_notify("finished")
foo(1, 0) を foo(1, 1) と変更して実行してみます.
正しく通知できていますね.
参考
Author And Source
この問題について(エラーや実行完了をLINEで通知する【Python】), 我々は、より多くの情報をここで見つけました https://qiita.com/Jun-T/items/a63eb60ff75ede0ada04著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .