Захватите имя измененного файла python - PullRequest
0 голосов
/ 30 августа 2018

Внутри скрипта есть алгоритм наблюдателя, который я адаптировал отсюда: https://www.michaelcho.me/article/using-pythons-watchdog-to-monitor-changes-to-a-directory

Моя цель теперь состоит в том, чтобы добавить несколько строк, чтобы получить имя любого файла, который был изменен, чтобы я мог иметь оператор if для проверки определенного файла, например:

if [modified file name] == "my_file":
    print("do something")

У меня нет опыта работы со сторожевым таймером или просмотром файлов, поэтому я изо всех сил пытаюсь найти ответ на этот вопрос. Как получить измененное имя файла?

1 Ответ

0 голосов
/ 30 августа 2018

Текущая настройка класса watchdog довольно бесполезна, поскольку он просто печатает ... он ничего не возвращает.

Позвольте мне предложить другой подход:

после вы получите список файлов, измененных за последние 12 часов:

result = [os.path.join(root,f) for root, subfolder, files in os.walk(my_dir) 
            for f in files 
            if dt.datetime.fromtimestamp(os.path.getmtime(os.path.join(root,f))) > 
            dt.datetime.now() - dt.timedelta(hours=12)]

вместо фиксированных дельта-часов вы можете сохранить время last_search_time и использовать его при последующих поисках.

Затем вы можете выполнить поиск, чтобы увидеть, содержит ли он ваш файл:

if my_file in result:
    print("Sky is falling. Take cover.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...