本記事は、Pythonでタスクスケジュールを制御できるライブラリ「python-crontab」について説明します。crontabは特定の時刻になった時に特定の処理やスクリプトを実行可能にする機能です。「python-crontab」は、crontabをPythonで操作することを可能としたライブラリです。今回はこのライブラリの活用方法の一つである「Python単独でタスクスケジュールを管理する」方法について説明します。合わせて読みたい似たようなことができるライブラリです。今回実装する内容python-crontabライブラリのジョブ作成の流れpython-crontabライブラリのジョブ監視と実行の流れpython-crontabライブラリを使用するためのクラスpython-crontabライブラリの導入方法ターミナルを開いて以下のコマンドを実行します。python-crontab今回実装する内容Pythonでジョブ作成してジョブ監視に入るまでの処理を実装します。◆ジョブ監視と実行の流れ・タブファイルから全ジョブを読み込む・スケジュール実行の時間になるまで監視ジョブ作成の流れから説明していきます。python-crontabライブラリのジョブ作成の流れ新規ジョブを生成してジョブにスケジュールを設定します。ファイルに保存することでジョブを保持することも可能です。新規ジョブを生成するまずはジョブを生成してコマンドを設定します。ジョブの生成はnew()メソッドを使用します。コマンドはターミナルのコマンドラインで実行できるコマンドです。今回は「helloworld.py」というファイルを実行してその結果をテキストファイルに出力します。World”)コマンド設定の実行例は以下の通りです。次にジョブにスケジュールを設定します。設定は生成したjobのメソッドsetall()を使用します。曜日」の指定となります。毎日10時にスケジュールを実行する場合の設定例です。*’)jobには「hour」、「minute」などのメソッドがあり細かく設定できますが、いろいろ覚えるとかえってややこしくなるので、まずは「setall()」の使い方だけ覚えておけば十分だと思います。最後に設定したジョブの内容をファイルに保存します。保存にはwrite()メソッドを使用します。ファイル名はなんでも大丈夫です。ファイルは上書きされるので保存する場合は先にファイルを読み込んでおきましょう。./test.txt以上でジョブの作成は完了です。ジョブを追加する場合は「cron.new()」で再度ジョブ生成してください。python-crontabライブラリのジョブ監視と実行の流れファイルから全ジョブを読み込んでジョブを監視状態に移行します。時間になるとジョブが実行されます。ファイルから全ジョブを読み込む※「ジョブ作成の流れ」から実行する場合はこのステップを飛ばしてもOKです。ファイルから全てのジョブを読み込みます。ファイル名を指定してインスタンスを生成するとファイル内の全ジョブを読み込むことが可能です。CronTab(tabfile=file_name)スケジュール実行の時間になるまで監視ジョブを読み込んだらスケジュールの監視を開始します。記述は以下の通りです。スケジュールになるとこの中の処理が実行されるprint("予定していたスケジュールを実行しました")これで監視状態に入ります。指定した時間になったらコマンドが自動的に実行されます。python-crontabライブラリを使用するためのクラス今までの処理を以下のクラスにまとめました。●Jobを生成する1.インスタンスを生成します。2.コマンド、スケジュール、ファイル名を指定してwrite_job()メソッドをコールします。※ファイル名は任意です。スケジュールの記述方法はOSのcrontabと同じです。●スケジュールを開始する1.タスクスケジュールを記述したファイルを指定してread_jobs()をコールします。2.monitor_start()をコールします。これで監視状態となり、指定した時刻になるとコマンドが実行されます。タスクスケジュールの監視を開始c.monitor_start(file)以上、python-crontabの使用方法とコードの作成例でした。このライブラリはOSのcrontabの操作も可能なツールなので機会があればそちらの実装方法も紹介したいと思います。【Python】Scheduleライブラリでタスクスケジュールを管理するPythonでSlackに天気を定期配信する〜crontabを使用したタスクスケジュール処理〜Pythonでスケジュール管理する方法については以下の記事にまとめています。Pythonでスケジュール管理する方法まとめこの記事のURLをコピーするカテゴリ:Pythonサンプルコード集こちらの記事も読まれていますこの記事を書いている人miyabikno住んでいるところ:神奈川県。SIer中小企業(C,VBA):8年(うち5年QA)。Web系ベンチャー(PHP,Javascript,Python):2年。@miyabiknoSIer中小企業(C,VBA):8年(うち5年QA)。Web系ベンチャー(PHP,Javascript,Python):2年。現在はブログをメインに活動しています。みやびのどっとぴーわい。