Pythonでファイルの変更を監視する方法!watchdogライブラリの使い方を徹底解説
どのプログラミング言語においても、ファイルの変更を監視する処理は、OSごとの仕様の違い(クロスプラットフォーム問題)があるため、自前で実装するのは容易ではありません。
Pythonには、この課題を解決するために広く利用されている「watchdog」というクロスプラットフォーム対応のライブラリがあります。watchdogを使えば、Windows・macOS・Linuxなど環境を問わず、ファイルシステムの変更イベントを簡単に検知できます。
watchdogのインストール
watchdogはpipコマンドで簡単にインストールできます。
$ pip install watchdog
サンプルコード:ファイルの変更を検知する
ここでは、「my_file.txt」といったカレントディレクトリ内のファイルの変更を監視するシンプルなプログラムを紹介します。
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
print("Got it!")
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path='.', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()コードの解説
このプログラムを実行し、監視対象ディレクトリ内のファイルに何らかの変更を加えると、MyHandlerクラスのon_modifiedメソッドがイベント情報とともに自動的に呼び出されます。
主なポイント
- イベントハンドラのカスタマイズ:
MyHandlerクラス内に独自の処理を記述することで、変更検知時の動作を自由に定義できます。また、on_created(ファイル作成)やon_deleted(ファイル削除)、on_moved(移動・リネーム)などのメソッドもオーバーライド可能です。 - 監視対象の指定:
observer.schedule()のpath引数で、監視したいファイルやディレクトリを指定します。上記の例ではカレントディレクトリ「.」を監視しています。 - 再帰的な監視:
recursive=Trueに設定すると、サブディレクトリ以下も含めて監視できます。
プログラムを停止する場合は、キーボードのCtrl + Cを押してください。KeyboardInterruptを受け取って、Observerが安全に終了します。
-
PythonでPowerPointファイルを自動作成する方法!python-pptxの基本を徹底解説
はじめに誰もが一度はPowerPointのプレゼンテーション資料を作成した経験があるのではないでしょうか。多くの場合、Microsoft PowerPointやGoogleスライドといったGUIツールを使うことが多いでしょう。しかし、ライセンスを持っていなかったり、インターネット環境にアクセスできなかったりすることもあります。あるいは、「プログラマーらしく」コードで自動生成したいと考える方もいるはずです。ご安心ください。そんなときこそPythonの出番です!この記事では、Pythonを使ってPowerPointファイルを作成し、コンテンツを追加する方法を解説します。それでは早速始めましょう!準
-
テレビをWindows 11 PCのモニターとして使う方法【HDMI接続・ワイヤレスキャスト完全解説】
Netflixで映画を見ているときや、友人とゲームをしているとき、「パソコンの画面がちょっと小さいな」と感じたことはありませんか?実は、その悩みを解決してくれる答えはリビングルームにあります。テレビはパソコンのディスプレイとして活用でき、最近ではスマートTVを使う人が非常に多いため、接続も簡単になっています。この記事を最後まで読めば、Windows 11 PCでテレビをモニターとして使う方法と、Windows 11をテレビに接続する手順をマスターできます。 Windows 11 PCでテレビをモニターとして使う方法 Windows 11 PCの画面をテレビに表示する方法は主に2つあります。ひ