Pythonでファイルの操作を監視するならwatchdogというライブラリが便利です。
目次
サンプルコード
まずはライブラリのインストール。
pip install watchdog
ファイル追加・更新/変更・削除・移動を監視するサンプルコードです。それぞれの引数もコメントで解説してあります。
from watchdog.events import PatternMatchingEventHandler
from watchdog.observers import Observer
# Handlerにはファイル操作時の処理を実装
class FileChangeHandler(PatternMatchingEventHandler):
def __init__(self):
ignore_patterns = ["*.txt"] # 無視するファイルパターン. 拡張子/ファイル名など指定.
patterns = ["*.pdf"] # 対象のファイルパターン. 拡張子/ファイル名など指定.
# patterns = "*" # 全ファイル対象とする場合はこれ
ignore_directories = True # ディレクトリも対象にするか
case_sensitive = True # 大文字小文字の区別
super().__init__(patterns=patterns, ignore_patterns=ignore_patterns, ignore_directories=ignore_directories,
case_sensitive=case_sensitive)
def on_created(self, event):
print(f"ファイル追加: {event.src_path}")
def on_modified(self, event):
print(f"ファイル修正: {event.src_path}")
def on_deleted(self, event):
print(f"ファイル削除: {event.src_path}")
def on_moved(self, event):
print(f"ファイル移動: {event.src_path}")
dir_path = <フォルダパス>
recursive = True # フォルダだった場合それ以下も探索する
# ObserverにHandlerを渡してstart
observer = Observer()
observer.schedule(FileChangeHandler(), dir_path, recursive)
observer.start() # バックグラウンドで監視開始
observer.join() # 監視完了待ち