【Python自動化入門⑤】タスクスケジューラでPythonプログラムを定期実行する

Python自動化

【Python自動化入門⑤】タスクスケジューラでPythonプログラムを定期実行する

こんにちは!Python自動化入門シリーズ第5回へようこそ。前回までの連載では、Pythonを使ってファイル操作やExcel操作、メール送信などの自動化スクリプトを作成してきました。しかし、せっかく作った便利なスクリプトも「毎回自分で実行する」のでは、完全な自動化とは言えませんよね。

そこで今回は、Windowsに標準搭載されている「タスクスケジューラ」を使って、作成したPythonプログラムを指定した時間に自動で実行する方法を解説します。「毎朝9時にデータを取得したい」「毎週月曜日にレポートを作成したい」といった要望を、この機能で実現できるようになります。初心者の方でも迷わないよう、画面操作の手順を丁寧に説明していきますので、ぜひ最後までご覧ください。

タスクスケジューラとは何か

タスクスケジューラとは、Windowsに標準で搭載されている「時間や条件に応じてプログラムを自動実行する」ための機能です。特別なソフトをインストールする必要がなく、無料で使えるのが大きなメリットです。

なぜ定期実行が必要なのか

例えば、以下のような作業を想像してみてください。

  • 毎朝、決まった時間にニュースサイトの情報をスクレイピングして保存したい
  • 毎週月曜の朝に、先週分の売上データを集計してメールで送りたい
  • 深夜にサーバーのバックアップを自動で取得したい

これらはすべて「決まったタイミングで自動的に処理を実行する」ことが求められる作業です。人間が毎回手動で実行するのは手間もミスも発生しやすいため、タスクスケジューラのような仕組みを使って自動化することが非常に有効です。

Macやサーバー環境の場合は?

今回はWindowsのタスクスケジューラを中心に解説しますが、Macやサーバー環境では「cron」という似た仕組みが使われます。基本的な考え方は同じですので、Windows以外の環境をお使いの方も、まずは仕組みの理解として読み進めていただければと思います。

タスクスケジューラの基本的な使い方

それでは実際にタスクスケジューラを開いて、基本的な操作方法を確認していきましょう。

タスクスケジューラを開く

Windowsの検索バーに「タスクスケジューラ」と入力すると、アプリが表示されます。クリックすると起動し、左側に「タスクスケジューラライブラリ」というフォルダツリーが表示されます。

新しいタスクの作成手順

タスクを新規作成する際は、右側のメニューから「基本タスクの作成」を選択すると、ウィザード形式で簡単に設定を進められます。主な設定項目は以下の通りです。

  • 名前・説明:タスクの内容がわかる名前を付けます(例:「毎朝のデータ取得」)
  • トリガー:いつ実行するか(毎日、毎週、特定の日時など)を設定します
  • 操作:何を実行するか(プログラムの起動)を設定します

初心者の方は、まず「基本タスクの作成」から始めるのがおすすめです。細かい条件設定が必要な場合は、後から「タスクのプロパティ」を編集することで対応できます。

Pythonスクリプトを定期実行する設定方法

ここからは、実際にPythonスクリプトをタスクスケジューラに登録する具体的な手順を解説します。

方法1:Pythonのパスを直接指定する

「操作」の設定画面で、以下のように入力します。

  • プログラム/スクリプト:Pythonの実行ファイルのパス(例:C:\Python39\python.exe)
  • 引数の追加:実行したいスクリプトのファイルパス(例:C:\scripts\daily_task.py)

この方法はシンプルですが、Pythonのパスが環境によって異なるため、事前にコマンドプロンプトでwhere pythonと入力し、正確なパスを確認しておきましょう。

方法2:バッチファイルを経由する方法

より確実に動作させたい場合は、バッチファイル(.bat)を作成し、その中でPythonスクリプトを実行する方法もおすすめです。

@echo off
cd /d C:\scripts
python daily_task.py

このようなバッチファイルを作成し、タスクスケジューラの「操作」でこのバッチファイルを指定するだけで実行できます。作業フォルダの指定や環境変数の問題を解消しやすくなるメリットがあります。

トリガーの設定例

トリガーの設定画面では、以下のような柔軟なスケジュール設定が可能です。

  • 毎日決まった時刻に実行
  • 毎週特定の曜日に実行
  • パソコン起動時に実行
  • 特定のイベント発生時に実行

用途に合わせて、最適なトリガーを選択しましょう。

定期実行時の注意点とトラブルシューティング

タスクスケジューラの設定は簡単ですが、いくつか注意すべきポイントがあります。

よくあるエラーとその対処法

  • スクリプトが実行されない:Pythonのパスやスクリプトのパスに誤りがないか確認しましょう。特にパスにスペースが含まれる場合は、ダブルクォーテーションで囲む必要があります。
  • 「開始(オプション)」の設定漏れ:作業フォルダを指定する「開始(オプション)」欄が空のままだと、相対パスを使ったスクリプトが正常に動作しないことがあります。
  • 権限不足でエラーになる:タスクの実行ユーザー設定で「最上位の特権で実行する」にチェックを入れることで解決する場合があります。

ログを出力して動作確認する

自動実行はバックグラウンドで行われるため、正常に動作しているか目視で確認しづらいという難点があります。そこで、スクリプト内にログ出力の処理を追加しておくと安心です。

import logging

logging.basicConfig(filename='log.txt', level=logging.INFO)
logging.info('タスクが正常に実行されました')

このようにログファイルに実行結果を記録しておけば、後から「いつ実行されたか」「エラーは発生していないか」を簡単に確認できます。

まとめ

今回は、Windowsのタスクスケジューラを使ってPythonプログラムを定期実行する方法について解説しました。ポイントを振り返ると以下の通りです。

  • タスクスケジューラを使えば、Pythonスクリプトを指定した時間に自動実行できる
  • Pythonの実行パスを直接指定する方法と、バッチファイルを経由する方法がある
  • トリガー設定により、毎日・毎週など柔軟なスケジュールが組める
  • ログ出力を仕込んでおくことで、実行結果を後から確認しやすくなる

一度設定してしまえば、あとはパソコンが自動でタスクを実行してくれるため、日々の業務効率が大きく向上します。ぜひ今回学んだ内容を活かして、自分だけの自動化環境を構築してみてください。

次回の記事では、さらに一歩進んだ自動化テクニックについて解説していく予定です。お楽しみに!

\ 初心者から未経験でプロを目指す /

Pythonプログラミング マンツーマン詳細はこちら >

タイトルとURLをコピーしました