【Python】 PythonでC#のFileSystemWatcher相当のクラスを作成する
C#側がファイルを作成し、それをトリガとしてpythonが起動するようにしたいと思っています。そのため、C#のFileSystemWatcherに相当するようなクラスが欲しいと思ったのですが、以下のサイトに書かれていました。 qiita.com
import time from watchdog.observers import Observer from watchdog.events import PatternMatchingEventHandler class MyFileEventHandler(PatternMatchingEventHandler): def __init__(self, patterns): super(MyHandler, self).__init__(patterns=patterns) def on_moved(self, event): # ファイルが移動した時に実行されるメソッド print('file moved') def on_created(self, event): # ファイルが作成された時に実行されるメソッド print('file created') def on_deleted(self, event): # ファイルが削除された時に実行されるメソッド print('file deleted') def on_modified(self, event): # ファイルが更新された時に実行されるメソッド print('file modified') # MyFileEventHandlerの使い方例 if __name__ == '__main__': # イベントを発生させるファイルパターン file_pattern_to_watch = '*.txt' # MyFileEventHandlerを生成して event_handler = MyFileEventHandler(file_pattern_to_watch) # Observerに登録する file_system_watcher = Observer() file_system_watcher.schedule(event_handler, directory_to_watch, recursive=False) # 監視を開始 file_system_watcher.start() # 指定時間待つ time_out_sec = 30 file_system_watcher.join(time_out_sec) # タイムアウトが起きたかどうか調べる if file_system_watcher.isAlive(): # メモ:実際にタイムアウトが起きたらkillするしかない? print('timeout happened')