Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Использование библиотеки watchdog для отслеживания событий в файловой системе
Данная статья является продолжением предыдущей статьи, посвящённой той же теме. На этот раз рассматриваем библиотеку watchdog.
Ниже представлена программа, аналогичная программе из предыдущей статьи. Напомню, что как и в предыдущей статье я исключаю вывод информации о временном файле, который создаёт редактор, с помощью которого я создаю текстовый файл. Временный файл содержит в имени символ '#'. Данная программа отслеживает события в файловой системе указанного каталога, при чём и в подкаталогах, т.е. рекурсивно.
Пример выполнения программы
Enter, чтобы закончить работу
Создание каталога ./prim/query
Создание файла ./prim/query/www.txt
Модификация ./prim/query/www.txt
Закрыт ./prim/query/www.txt
Удалён файл ./prim/query/www.txt
Перемещение/переименование ./prim/query
Сделаем ряд пояснений к тексту программы
- В программе используются два модуля библиотеки watchdog.observers и watchdog.events. Первый модуль отвечает за процессом наблюдения, второй за обработку событий. Соответственно из первого модуля импортируется класс Observer, из второго FileSystemEventHandler.
- Для того, чтобы запустить наблюдение нужно: 1. Создать объект класс FileSystemEventHandler для обработки событий файловой системы. 2. Создать объект класса Observer (у нас это obs1) и связать объект с объектом класса обработки событий: Observer.schedule(ev, path='./prim', recursive=True). Обращаю внимание на параметр recursive, в данном случае он указывает, что обработка будет рекурсивной. 3. Запустить наблюдение методом Observer.start().
- В конце следует выполнить Observer.stop() (obs1.stop()).
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.