👨💻 Минутка почти еженедельной рубрики «какого черта вы это делаете руками в 2025?».
Сегодняшний пациент — самописные скрипты для отслеживания изменений файлов.
Видел это миллион раз: бесконечный цикл, внутри os.walk, time.sleep(1) и сверка mtime. Наивный, прожорливый и кривой костыль, который жрет CPU впустую, даже когда ничего не происходит. Чуть лучше — взять старый-добрый watchdog.
Но есть watchfiles.
Это библиотека с ядром на Rust, использующее нативные API ОС (inotify на Linux, FSEvents на macOS и т.д.), и удобная обертка на Python. Пока событий нет — потребление ресурсов нулевое. Реакция мгновенная.
Это тот же паттерн, что и у Ruff, Polars или uv: тяжелую, низкоуровневую работу, где важна производительность, мы делегируем нативному коду. А в Python оставляем удобство и бизнес-логику.
Я тут расписал все это в деталях: заглянул под капот watchfiles, сравнил с watchdog и самописными костылями, показал, как пользоваться CLI и для чего это вообще нужно в разработке.
👉 Читать: watchfiles: руководство по эффективному мониторингу файлов в Python
Или вы до сих пор считаете, что while True + os.walk — это норм? Расскажите, почему 🌚