watchdogの使い方メモ
サーバープログラムを開発していると、開発中のサーバーを起動しっぱなしにしておきつつ、何かしら変更を加えた際には自動で再起動されてほしい。 Pythonでは、どういうツールがあるのかなと調べたら、watchdogというツールが見つかったので使い方をメモしておく。
公式の説明によると
Python API and shell utilities to monitor file system events.
とのこと。Pythonスクリプトの中で、ファイルシステムに何かイベントがあったときにイベントを発火してくれるような機能がメインの使い方のようであるが、簡易的にシェルからコマンドで起動する方法も用意されている。
後者のシェルからの起動を利用するには
$ pip install "watchdog[watchmedo]"
と、watchmedo
というオプションを付けてインストールする必要がある。
例えば、
カレントディレクトリ以下の*.py
に合致するファイルに何か変更があったら、特定のコマンドを実行する
ということをしたい場合には、
$ watchmedo shell-command --patterns="*.py" --command="echo updated" --recursive .
を実行すれば良い。(上の例だとecho updated
が実行される)