ここではフォルダ監視用の watch.py とは別に,文字起こし等の処理を行うワーカープログラム worker.py のひな形を作成します.
次のプログラム (worker.py) は,待ち行列用の queue フォルダを走査し,拡張子が .md であるファイル一つひとつについて内容を表示したうえで,完了用 done フォルダに移動します.
worker.py
from pathlib import Path
import shutil
BASE_DIR = Path(__file__).parent
QUEUE_DIR = BASE_DIR / "queue"
DONE_DIR = BASE_DIR / "done"
# ディレクトリを作っておく
QUEUE_DIR.mkdir(parents=True, exist_ok=True)
DONE_DIR.mkdir(parents=True, exist_ok=True)
for src in QUEUE_DIR.glob("*.md"): # 拡張子が .md のファイルだけ
print(f"処理開始: {src.name}")
with open(src, "r", encoding="utf-8") as f:
print(f.read())
dst = DONE_DIR / src.name
shutil.move(src, dst)
print(f"完了: {dst}")
待ち行列用 queue フォルダに2つのマークダウンファイルを作成します.次のコマンドでは queue フォルダにファイルが存在していることを確認しています.
(py313watchdog) PS C:\Users\rinsaka\Documents\python\watchdog> gci queue ⏎ ディレクトリ:C:\Users\rinsaka\Documents\python\watchdog\queue Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2026/10/25 18:18 56 sample1.md -a--- 2026/10/25 18:18 115 sample2.md (py313watchdog) PS C:\Users\rinsaka\Documents\python\watchdog>
次のコマンドでプログラムを実行します.実行すると2つのマークダウンファイルの内容が出力され,プログラムの実行が終了しました.
(py313watchdog) PS C:\Users\rinsaka\Documents\python\watchdog> python worker.py ⏎
処理開始: sample1.md
# Watchdog
Watchdogでフォルダを監視します.
完了: C:\Users\rinsaka\Documents\python\watchdog\done\sample1.md
処理開始: sample2.md
# 自動処理
新たなファイルが保存されたときに,自動的に何らかの処理を行いたい.
完了: C:\Users\rinsaka\Documents\python\watchdog\done\sample2.md
(py313watchdog) PS C:\Users\rinsaka\Documents\python\watchdog>
ファイルが待ち行列用 queue フォルダから完了用 done フォルダに移動したことを確認します.
(py313watchdog) PS C:\Users\rinsaka\Documents\python\watchdog> gci queue ⏎ (py313watchdog) PS C:\Users\rinsaka\Documents\python\watchdog> gci done ⏎ ディレクトリ:C:\Users\rinsaka\Documents\python\watchdog\done Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2026/10/25 18:18 56 sample1.md -a--- 2026/10/25 18:18 115 sample2.md (py313watchdog) PS C:\Users\rinsaka\Documents\python\watchdog>
今のプログラムでは,待ち行列用 queue フォルダが空になれば(厳密には拡張子が .md のマークダウンファイルが無くなれば)実行が終了してしまいます.次のページでは,ワーカープログラム (worker.py) を常駐化してみます.