WindowsでPythonをバックグラウンドで定期実行して自動化する

公開日:
目次

pythonでの自動化の基本として、スクリプトを作成したら定期実行したいですよね。

今回は、特にWindows環境でPythonスクリプトをバックグラウンドで実行する方法として、基本的なpythonwを利用する方法と、さらにそれを定期実行する方法について、タスクスケジューラを使った設定を紹介します。

pythonwを使ったバックグラウンド実行

通常、Pythonスクリプトはコマンドプロンプトやターミナルからpython スクリプト名.pyのように実行すると、そのプロセスがフォアグラウンド(コマンドプロンプトなどのシェルが起動する形)で実行され、実行中はコマンドプロンプトが占有されます。

しかし、pythonwを使用すると、ウィンドウを表示せずにバックグラウンドでPythonスクリプトを実行することができます。

実行方法

コマンドプロンプトやショートカットを使用して、Pythonスクリプトをpythonwで実行します。

実行する場合は、pythonwのパスとpythonスクリプトのファイルパスを指定してください。

例えばpythonスクリプトが直下にあるディレクトリに移動した場合は下記のようになります。

C:\path\to\pythonw.exe スクリプト名.py

これにより、スクリプトがバックグラウンドで実行され、実行中も他の作業を続けることができます。

pathがわからない場合はwhereコマンドで探しましょう。

where pythonw

タスクスケジューラを使った定期実行

Pythonスクリプトを定期的に実行させたい場合は、Windowsのタスクスケジューラを利用すると便利です。特に、pythonwと組み合わせることで、定期的なバックグラウンド実行を自動化できます。

設定方法

  1. タスクスケジューラを開き、「タスクの作成」を選択します。
  2. トリガーを設定して、スクリプトを実行したい条件(日時など)を指定します。
  3. 「操作」で新しい操作を追加し、プログラム/スクリプト欄にpythonw.exeのパス(例:C:\path\to\.venv\Scripts\pythonw.exe)を入力し、引数に実行したいスクリプトのパスを追加します。
  4. その他必要な設定(条件、設定など)を済ませ、「OK」でタスクを作成します。

batファイルを介した実行

さらに、スクリプトの実行条件が複雑である場合や、複数のスクリプトを一度に実行したい場合は、batファイルを作成して、そのbatファイルをタスクスケジューラから実行するように設定することもできます。

  1. テキストエディタを開き、下記の例のようにpythonw.exeと実行したいスクリプトのパスを記載した行を追加します。
C:\path\to\.venv\Scripts\pythonw.exe C:\path\to\script.py
  1. ファイルを.bat拡張子で保存します。
  2. タスクスケジューラでこの.batファイルを実行するように設定します。

これらの方法を利用することで、Pythonスクリプトをより柔軟に、効率的にバックグラウンドで実行し、自動化の幅を広げることができます。日常の作業の自動化や、サーバーレスな環境での定期的なデータ処理など、多岐にわたる用途で活用してみてください。