【Windows】Pythonでスクリプトを自動実行する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでスクリプトを自動実行する方法について現役エンジニアが解説しています。スクリプトを自動実行するにはcronやタスクスケジューラーなどを使う方法があります。今回はWindowsのタスクスケジューラーを使って、Pythonプログラムを指定時間に実行する方法を解説します。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Pythonでスクリプトを自動実行する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonでスクリプトを自動実行する方法について詳しく説明していくね!

大石ゆかり

お願いします!

Windows10を使用しているので、その環境での自動実行の方法を簡便に説明します。

Pythonに限らず、「スクリプトを記述してファイルに保存したものを、自動で実行したい」という状況は皆様もよくあるかと思います。例えば、定期的にログから特定のメッセージを取り出して別のファイルに保存したり、特定のアプリケーションを起動させたり。。等です。

今回私の使用しているPCのOSがWindows10ということもあり、「WindowsOSでスクリプトを自動実行する方法」を説明していきたいと思います。特別なアプリやライブラリの別途インストールなどの必要はないので気軽に試すことができます。

Pythonでスクリプトを自動実行する手順

大まかな手順としては、

  1. Pythonスクリプトを記述して、xxxx.pyファイルとして保存する
  2. ①のxxxx.pyを実行するバッチファイルyyyy.batファイルを作成し保存する
  3. Windowsのツール、「タスクスケジューラ」を使用して、②のyyy.batファイルを実行する

という手順になります。

1.Pythonスクリプトを記述する

今回は単純なテキスト出力のファイルを例として使用します。

print("hello python")

上の1行プログラムをhello.pyという名前で保存します。

2.バッチファイルを作成する

上記で作成したhello.pyファイルを呼び出して実行するバッチファイル(call_python.bat)を作成します。

 python c:\sakawork\pyd\mentor\hello.py
  REM 実行するpythonスクリプトファイル"hello.py"はフルパスで指定します。
  pause

REM “pause” はDOSターミナルをバッチファイル実行後も表示させたままにするDOSコマンドです。

3.Windowsプリインストールのアプリ「タスクスケジューラ」で自動実行設定を行う

今回はタスクスケジューラを使用して、ある時間が来たら、設定したスクリプトを実行するように設定してみましょう。

起動方法

スタートメニューの検索窓で「タスクスケジューラ」と入力し、「検索」ボタンを押すと設定ウィンドウが表示されます。

Windowsのスタートメニューの検索窓でタスクスケジューラと入力すると表示される設定ウィンドウ。

タスクの設定方法

プルダウンメニューの「操作」から「基本操作」を選択してください。

Windowsのタスクスケジューラーから操作を選択し、基本操作を選択する画像。

今回は「1回のみ」、「ある時間が来たら実行する」設定を行います。

Windowsのタスクスケジューラーの基本タスクの作成ウィザードで、トリガーを設定する画面。

実行するプログラムは上記で作成した、バッチファイル(call_python.bat)です。

Windowsのタスクスケジューラーの基本タスクの作成ウィザードで、実行するファイルを設定する画面。

これでタスクスケジューラの設定は完了です。

実行結果

設定した時間になると、自動でDOS窓が起動して、設定したプログラムを実行しました。

設定した時間になると自動でDOS窓が起動して、設定したバッチファイルが起動して、Pythonプログラムが実行されました。

今回の自動実行方法はPythonだけでなく、様々なスクリプトやプログラムに対して応用可能です。

是非色々お試しいただければ、と思います。

 

監修してくれたメンター

坂下雄一(さかしたゆういち)

外資系のEDAベンダで、エンジニアとして働いた後、東南アジアにて起業しました。
PythonはEDAのコマンド自動化、テスト環境構築の時に初めて使用し、素晴らしいと思い、今に至ります。

EDAの環境構築、手順の自動化は、tcl/tkというコマンド言語がメインですが、Pythonで置き換える作業も最近は盛んになってきています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。