Summary
決まった時刻に指定した関数を実行したい。
時刻を取得してフォーマットを整形して表示したい。
pip install 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.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)