Как мониторить изменение файла?

В Python существуют различные способы мониторинга изменений файлов. Один из подходов - использование модуля watchdog.

Для начала нужно установить модуль watchdog с помощью команды pip install watchdog. Затем импортировать необходимые классы из watchdog.observers и watchdog.events:

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

Далее нужно создать класс, наследуемый от FileSystemEventHandler, который будет переопределять методы обработки событий файловой системы, в частности метод on_modified, который будет вызываться при изменении файла:

class MyHandler(FileSystemEventHandler):
    def on_modified(self, event):
        if not event.is_directory:
            print("Файл был изменен:", event.src_path)

После этого создаем экземпляр класса MyHandler и Observer, указывая путь к директории или файлу, который мы хотим мониторить. Затем регистрируем обработчик и запускаем наблюдение:

if __name__ == "__main__":
    event_handler = MyHandler()
    observer = Observer()
    observer.schedule(event_handler, path='<путь_к_файлу_или_директории>', recursive=True)
    observer.start()

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()

    observer.join()

Теперь при изменении файла в заданной директории или файле, будет вызываться метод on_modified у экземпляра класса MyHandler, и в консоль будет выводиться сообщение о изменении файла.

Таким образом, используя модуль watchdog в Python, вы можете мониторить изменение файлов и выполнять определенные действия в зависимости от обнаруженных изменений.