scheduleで指定時刻に実行(datetimeで時刻取得)(2021.7.10)

Summary

決まった時刻に指定した関数を実行したい。
時刻を取得してフォーマットを整形して表示したい。

scheduleのインストール

pip install schedule

scheduleで時刻指定実行

import time
import schedule

def task1():
    print('task1')
    return 1
def task2():
    print('task2')
    return 2

schedule.every(1).minutes.do(task1)
schedule.every(1).seconds.do(task2)

while True:
       schedule.run_pending()
       time.sleep(1)

datetimeで時刻の取得と文字列の整形表示

datetime.datetime.now().strftime('format string')
エスケープ文字 意味
%a ロケールの曜日名を省略形で表示 ‘Sun’
%A ロケールの曜日名を表示 ‘Sunday’
%b ロケールの月名を省略形で表示 ‘Jan’
%B ロケールの月名を表示 ‘January’

プログラムはこちら
test_schedule.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# =======================================================
#  scheduleで指定時刻に実行(datetimeで時刻取得)
#
#  test_schedule.py
#  coded by Noboru Harada (noboru@ieee.org)
#
#  Changes:
#  2021/07/10: First version
# =======================================================

import time
import datetime
import schedule
import locale

def get_time():
       return (datetime.datetime.now())

def task1():
   return 0       

def task2():
   l = locale.getlocale(locale.LC_TIME)
   locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')
   print (get_time().strftime('Doing task2 %Y年%m月%d日(%A) %H時%M分%S秒'))
   locale.setlocale(locale.LC_TIME, l)
   return 1

def task3():
   print (get_time().strftime('Screen Shot %Y-%m-%d at %H.%M.%S' + ' filename'))
   return 0

# Add jobs to the scheduler
schedule.every(1).minutes.do(task2)
schedule.every(1).seconds.do(task3)

print(locale.getlocale(locale.LC_TIME))
print(get_time())

while True:
       schedule.run_pending()
       time.sleep(1)

参考

Back to Index