Pythonでフォルダ監視 新規作成ファイルの取得
ライブラリのインストール
pip install watchdog
イベントクラスの作成
まず、フォルダ監視のイベントを定義するクラスを作成します。今回はファイルが作成された時のイベントを記載します。
クラス名は特に決まりはありませんので、なんでも構いません。が、引数に”FileSystemEventHandler”が必要です。
次にメソッドですが新規作成の場合は”on_created”で引数にselfとイベントを受け取る引数を設定します。
実際に動かしてみる
main処理はまず、イベントクラス、Observerクラスを初期化します。※このObserverがpythonの監視オブジェクトです。
observer.schedule(”イベントハンドラーインスタンス”、”監視ディレクトリ”、recursive=True)で監視設定を行います。
observer.start()で監視の実行ができます。
正直、time.sleep(0.1)に意味はありません。trycatchのエラー取得のための対の処理として無限ループを仕方なく処理に組み込んでいます。
実際のコード
※watch_dirだけ任意のパスに変更してください。
import time
import os
from watchdog.events import FileSystemEventHandler
from watchdog.observers import Observer
watch_dir = "監視フォルダパス"
class ChangeHandler(FileSystemEventHandler):
#001
def on_created(self, event):
filepath = event.src_path
filename = os.path.basename(filepath)
print('%sが新規で作成!' % filename)
if __name__ in '__main__':
while 1:
event_handler = ChangeHandler()
observer = Observer()
observer.schedule(event_handler, watch_dir, recursive=True)
observer.start()
try:
while True:
time.sleep(0.1)
except KeyboardInterrupt:
observer.stop()
observer.join()

