非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

PythonのScheduleライブラリを使ってcronのように一定間隔で処理する方法

   

Pythonにはcronのように処理を一定間隔で実行してくれるScheduleライブラリというものがあります。

Linux環境ならcronがありますが、それがないWindows環境でも類似機能が使えて便利です。

広告

Scheduleライブラリはインストール必要

ScheduleライブラリはAnacondaにも同梱されていないのでpipが必要になります。

pipコマンドでインストールしましょう。

pip install schedule
 

 

毎秒ごとに処理する例

以下は1秒ごとにjob()関数を実行させるプログラムです。

import schedule
import time

def job():
  t = time.strptime(time.ctime())
  print(time.strftime("%Y/%m/%d %H:%M:%S", t))

#1/60分=1秒毎にjobを実行
schedule.every(1/60).minutes.do(job)

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

 

schedule.every(1/60).minutes.do(job)で、1/60分つまり1秒間隔でjob関数を呼び出します。秒単位のメソッドがないので1/60分とすることで秒単位の呼び出しができます。

結果はご覧の通り1秒ごとに出力されています。

 

時間単位から曜日単位、時刻指定も可

以下に示すようにいろいろなインターバルを設けることができます。

schedule.every(1).minutes.do(job) #分単位
schedule.every().hour.do(job) #時間単位
schedule.every().day.at("9:20").do(job) #時刻単位
schedule.every().monday.do(job) #毎月曜日に
schedule.every().wednesday.at("9:20").do(job) #水曜日の9:29に
 

 

広告

 - Python