アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

Windows 11のタスクスケジューラを使ってPythonスクリプトを定期実行する方法

Featured image of the post

Pythonの学習をはじめてスクリプトを作成したりしていると、このスクリプトを定期実行したいなど思うこともあると思います。このような定期実行のことはバッチ処理といいLinuxサーバなどを利用したりすることが多いですが、Windows でも「タスクスケジューラ」という機能があります。

この「タスクスケジューラ」は、スクリプトやプログラムを定期的に実行するための便利なツールです。

この記事では、Pythonスクリプトを定期的に実行する方法をステップバイステップで解説します。タスクスケジューラを活用することで、自動化や効率化を簡単に実現できます。


[目次を開く]

必要な準備

タスクスケジューラを設定する前に以下を確認してください:

  1. Pythonがインストールされている
    • Pythonのインストールパスを確認しておきましょう。例: C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python39\python.exe
  2. 実行したいPythonスクリプト
    • 任意のディレクトリにスクリプトファイル(例: script.py)を保存します。フルパスをメモしておきましょう。例: C:\Scripts\script.py
  3. 管理者権限
    • タスクスケジューラの設定には管理者権限が必要な場合があります。

タスクスケジューラの設定手順

1. タスクスケジューラを開く
  1. スタートメニューを開き、「タスクスケジューラ」と検索。
  2. 結果から「タスクスケジューラ」を選択
  3. 管理者として実行をクリックし起動

Image in a image block

2. 新しいタスクを作成する
  1. 画面右側の「タスクの作成」をクリック。
  2. 「全般」タブで以下を設定:
    • 名前: タスクの名前をわかりやすく入力(例: Pythonスクリプト定期実行)。
    • 説明(任意): タスクの目的を記載(例: 「データ分析用スクリプトを毎日実行」)。
    • オプション: 「最上位の特権で実行する」にチェックを入れる(必要な場合)。
Image in a image block
3. トリガーの設定
  1. 「トリガー」タブに移動し、「新規」をクリック。
  2. 以下の設定を行います:
    • タスクの開始: 実行タイミングを選択(例: 「毎日」)。
    • 開始日時: 初回実行日時を指定。
    • 繰り返し間隔: 必要に応じて設定(例: 毎日1回)。
Image in a image block

詳細設定で繰り返し間隔を設定し継続時間を無制限に設定するとPCが起動している間、1時間に1回、実行されるようになります。

4. 操作の設定
  1. 「操作」タブに移動し、「新規」をクリック。
  2. 以下の設定を行います:
    • 操作: 「プログラムの開始」を選択。
    • プログラム/スクリプト: Pythonの実行ファイルのパスを入力(例: C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python39\python.exe)。
    • 引数の追加: 実行するスクリプトのパスを入力(例: C:\Scripts\script.py)。
    • 開始(オプション): スクリプトのディレクトリを指定(例: C:\Scripts)。
    Image in a image block

※仮想環境を利用している場合はPythonの実行ファイルのパスを仮想環境のものに置き換えてください。

5. 条件と設定の調整
  1. 「条件」タブで必要に応じて以下を設定:
    • 「電源」の項目で「コンピューターがAC電源に接続されている場合のみタスクを開始する」のチェックを外す(必要に応じて)。
  2. 「設定」タブで以下を確認:
    • タスクが失敗した場合の再試行設定(例: 「失敗時に再実行する」)。

設定のテスト

タスクを保存後、タスクスケジューラの一覧画面に戻ります。作成したタスクを右クリックして「実行」を選択し、スクリプトが正しく動作するか確認してください。

動作確認が成功する場合

  • スクリプトの出力やログを確認。
  • 定期実行を待機し、予定通り実行されるか検証。

エラーが発生する場合

  • パスの設定: Pythonの実行ファイルやスクリプトパスが正しいか確認。
  • スクリプトの内容: 権限や環境変数に依存していないかチェック。

応用例

タスクスケジューラを活用することで、次のような自動化を実現できます:

  • 定期的なデータ処理(例: Webスクレイピングやデータベースのバックアップ)。
  • メールや通知の自動送信。
  • システムのメンテナンスやログの監視。

注意点

  1. Python環境の整備
    • 仮想環境を使用している場合、スクリプト内で必要なモジュールがインストールされているか確認してください。
  2. 権限
    • 管理者権限が必要なタスクは「最上位の特権で実行する」を有効にする。
  3. ログ管理
    • スクリプトにログ出力機能を組み込むと、エラー発生時の原因特定が容易になります。

その他の定期実行方法

タスクスケジューラ以外にPythonのスクリプトを定期実行する方法を紹介します。

Pythonのライブラリ、scheduleを利用する

難易度としては比較的低めで、手間もそれほどかかりません。手軽に定期実行を組みたいならこちらの方法もおすすめです。

Webサーバで定期実行する

難易度としては、やや高めでWebサーバの知識が必要になります。外部またはローカル環境内にWebサーバを構築しスクリプトを定期実行させます。


まとめ

Windows 11のタスクスケジューラを使用することで、Pythonスクリプトの実行を自動化し、作業を効率化できます。また「タスクスケジューラ」は、Python以外の言語で書かれたスクリプトでも設定ができる点がメリットです。

ぜひ活用してみてください!

業務効率化の相談はお問合せより気軽にご連絡ください。

あなたを爆速で成長させるメンタリングプログラムはこちらから↓↓

RUNTEQ(ランテック) - 実践型Webエンジニア養成プログラミングスクールの入会