【Python】Windowsタスクスケジューラで定期的に自動実行する方法(EXEファイル)

時計 2021.02.10 / 時計

【Python】Windowsタスクスケジューラで定期的に自動実行する方法(EXEファイル)

本記事ではPythonスクリプト(EXEファイル)をWindowsタスクスケジューラで定期的に自動実行する方法を解説していきます。

Pythonスクリプトによるスクレイピングによる情報収集といった定期的に実行する必要がある作業は、Windowsの標準アプリであるタスクスケジューラを使いましょう。

タスクスケジューラを使用することで、Pythonスクリプトの実行スケジュールを簡単に組むことができます。

Unix/Linux系であれば、cronを使ってPythonスクリプトの定期実行ができます。
本記事はWindowsユーザー向けの記事なので、Windowsのタスクスケジューラを使用しています。

本記事を通して以下の知識を学べます。

学べる知識
  • Windowsタスクスケジューラについて
  • PythonスクリプトのEXE化方法
  • Pythonスクリプトのタスクスケジューラでの定期実行方法

タスクスケジューラとは

タスクスケジューラとはWindows10に標準搭載されているタスク管理アプリケーションです。
特定の曜日や時間で指定したアプリケーション(スクリプト)を定期的に実行することができます。

タスクスケジューラを使用してルーチン作業を自動化できるので、営業時間外の深夜にプログラムを走らせたり、作業忘れを防止するなど様々な用途に使用されています。

Pythonスクリプトとタスクスケジューラを組み合わせることで、定期的にPythonスクリプトを自動実行する仕組みを作ることができます。

PythonスクリプトのEXE化

pyファイルのままPythonスクリプトをタスクスケジューラで実行することもできますが、私はPythonスクリプトをEXE化して使用しています。

EXE化することによって、誰でも(Pythonをインストールしていなくても)実行することができるからです。

PythonスクリプトのEXE化方法については以下記事をご参照ください。

もちろんPythonをインストールしているパソコンであれば、EXE化せずとも実行することはできます。
その方法についても併せてご紹介いたします。

タスクスケジューラで定期自動実行する方法

EXE化したPythonスクリプト

PythonスクリプトをEXE化しましたら、以下の流れでタスクスケジューラに登録します。

  1. 「スタート」>「Windows管理ツール」>「タスクスケジューラ」の順に選択
  2. タスクスケジューラの実行
  3. 表示されたタスクスケジューラから「基本タスクの作成」を選択
  4. タスクスケジューラ:基本タスクの作成
  5. 「作成ウィザード」に名前と説明を入力して「次へ」をクリック
  6. タスクスケジューラ:作成ウィザード
  7. 「タスクトリガー」から定期実行させる間隔を選択して「次へ」をクリック
  8. タスクスケジューラ:タスクトリガーの入力
  9. 実行する詳細な日時を選択して「次へ」をクリック
  10. タスクスケジューラ:実行日時の入力
  11. タスクの開始タイミングを選択して「次へ」をクリック
  12. タスクスケジューラ:タスクの開始タイミング
  13. Pythonスクリプト(EXE)を選択して「次へ」をクリック
  14. タスクスケジューラ:スクリプトの選択
  15. 要約画面で「プロパティダイアログを開く」のチェックボックスにチェックして「完了」をクリック
  16. タスクスケジューラ:要約画面
  17. プロパティ画面で「ユーザーがログインしているときのみ実行する」にチェックがあることを確認する
  18. タスクスケジューラ:ログインしているときのみ実行する

上記の流れで定期的にPythonスクリプトを実行するタスクを登録できます。

また私の場合ですが、
プロパティ画面で「ユーザーがログオンしているかどうかに関わらず実行する」を選択してタスクを実行すると必ず失敗してしまいました。 Pythonスクリプトのパス指定を特別変えなければうまく実行できないかもしれないです。

pyファイル(EXE化していない)のPythonスクリプト

Pythonをインストールしているパソコンであれば、EXE化せずにPythonスクリプトをタスクスケジューラで実行できます。

「EXE化したPythonスクリプト」をタスクスケジューラに登録する場合と比べると、「プログラムの開始」画面での入力項目が異なります。

タスクスケジューラ:プログラムの開始画面

上記画面で以下のように入力します。

説明 入力
プログラム/スクリプト python.exeのパス
引数の追加 実行するPythonスクリプト名(pyファイル)
開始 pyファイルまでの絶対パス

python.exeのパスは以下コマンドを実行することで確認することができます。

py --list-paths

3つの項目を入力すると以下のようになります。

タスクスケジューラ:3つの項目を入力

上記3つの入力項目を気を付ければ、EXE化せずともPythonスクリプトの定期的な実行がタスクスケジューラで可能となります。

まとめ

本記事「【Python】Windowsタスクスケジューラで定期的に自動実行する方法(EXEファイル)」はいかがでしたか。

Windowsに標準搭載されているタスクスケジューラを使えば、非常に簡単に定期実行ができるようになります。

ぜひ紹介した方法でルーティンタスクを登録して、注力すべき業務に集中できるようにしてください。