Как использовать сторожевой таймер для наблюдения за созданием или удалением файла в Python - PullRequest
0 голосов
/ 11 февраля 2020

Я использую watchdog в Python для мониторинга в режиме реального времени при создании или удалении файла.

Следуя примерам, я попробовал следующее:

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

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        print("File is created!")

event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path='C:/daten/dog.txt', recursive=False)

observer.start()

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

observer.join()

Конечно файл path='C:/daten/dog.txt' не существует, когда этот скрипт начинает работать. Но я все еще получаю сообщения об ошибках как

FileNotFoundError: [WinError 2] The system cannot find the file specified.

Почему он говорит, что не может найти файл, указанный в первую очередь. Мне нужно, чтобы он все-таки наблюдал за созданием файла.


Обновление: Теперь я понимаю, что watchdog предназначен для мониторинга папки, а не файла.

Существует ли аналогичный пакет для мониторинга файла или его лучше сделать только с помощью операторов while и sleep?

1 Ответ

1 голос
/ 11 февраля 2020

Почему это говорит мне, что он не может найти файл, указанный на первом месте.

Поскольку путь, который вы указываете сторожевому таймеру, - это то, где он собирается перехватить себя для прослушивания событий.

Вы не можете просматривать файл и ожидать, что его событие будет записано. События создания файла публикуются в родительском каталоге, поэтому , что - это то, что вы должны наблюдать.

На самом деле, я не знаю, что просмотр указанного c файла имеет какой-то смысл сторожевой таймер, его слоган

Справочник Мониторинг стал проще с

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...