こんにちは、fuyutsuki(@Fuyutsuki)です。
Pythonを使って作業を自動化する際に考えることは、「Pythonスクリプト自体を自動で実行したい」という事ではないでしょうか。
Windowsで標準に備わっている「タスクスケジューラ」というアプリがPythonを自動で実行するのに便利ですので、設定方法について解説します。
タスクスケジューラにPythonスクリプトを設定し自動実行する手順
Windowsのタスクスケジューラを使用してPythonスクリプトを定期的に実行するため、以下の手順で設定しましょう。
パソコンがスリープモードになっているとタスクの実行が停止されてしまいます。タスクスケジューラにはスリープ状態からの復帰をトリガーとしてタスクを開始するオプションがありますし、電源オプションの変更も行っておいた方が良いです。
タスクスケジューラでPythonスクリプトを設定する手順
まずはスタートメニューから「タスクスケジューラ」と検索し、起動しましょう。タスクスケジューラが起動したら、「基本タスクの作成」をクリックします。
まずはタスクの名前と説明を入力します。説明は自分が分かるような内容にしておけば問題ありません。
タスクトリガーの頻度を設定します。
トリガーの開始日と間隔を設定します。
操作では「プログラムの開始」を選択して次へをクリックしましょう。
プログラムの設定を行います。設定内容は下記のとおりです。
- プログラム/スクリプト(P):python.exeのパスを入力(例:
C:\Python39\python.exe
) - 引数の追加(オプション)(A):.pyファイルのパスを入力(例:
D:\Scripts\my_script.py
) - 開始(オプション)(T):.pyファイルが格納されたフォルダパスを入力(例:
D:\Scripts
)
こちらの記事で解説しているようなvirtualenvを使って仮想環境を構築されている方は、仮想環境のpython.exeまでのパスを入力します。
ここまで設定が完了すると基本タスクの設定は終了になります。
作成したタスクの詳細を確認できます。
スリープモードでもPythonスクリプトを自動で実行したい場合には、「ユーザーがログオンしているかどうかにかかわらず実行する」にチェックを入れる必要があります。
次に条件タブの設定を見直しましょう。
ネットワークの設定も確認します。ネットワーク接続が必要なPythonスクリプトの場合は、「次のネットワーク接続が使用可能な場合のみタスクを開始する」にチェックを入れましょう。
スクスケジューラを設定する際の注意点
「ユーザーがログオンしているかどうかにかかわらず実行する」にチェックを入れていた場合でも、期待通りにPythonスクリプトが実行されない場合があります。
こういった時にはコンピュータの電源管理設定を一度見直しましょう。
パソコンの電源オプションを見直す手順
Windowsの電源オプションを見直す手順について解説します。
設定アプリを開き、システム>電源を選択しましょう。電源の項目から設定することができます。
上記のやり方では電源オプションの設定が不十分なことがあります。その場合は、「コントロールパネル>すべてのコントロールパネル項目>電源オプション>プラン設定の概要」から設定を変更できます。
ハードディスクの電源を切られるとPythonスクリプトを自動で実行することができなくなってしまうため、「次の時間が経過後ハードディスクの電源を切る」の設定をなしにします。必要に応じてスリープについても設定をなしに変更しておきましょう。
まとめ:タスクスケジューラでPythonスクリプトを自動実行しよう
今回の記事ではタスクスケジューラでPythonスクリプトを自動実行する手順について解説しました。
Pythonスクリプトを自動で実行できるようになると、自動化の幅が広がりますので是非一度お試しください。また、おすすめのログの残し方について、実際に私が使用しているPythonコードを紹介しつつ、こちらの記事で紹介しています。
私のブログではPythonの解説記事を多く執筆しているため、またブログの記事を読みに来ていただけると嬉しいです!