0

在脚本中是一个观察者算法,我从这里改编: https ://www.michaelcho.me/article/using-pythons-watchdog-to-monitor-changes-to-a-directory

我现在的目标是添加几行来获取任何已修改文件的名称,这样我就可以使用 if 语句检查某个文件,例如:

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

我没有任何看门狗或文件监视的经验,所以我正在努力寻找答案。我将如何收到修改后的文件名?

4

1 回答 1

1

看门狗类的当前设置非常无用,因为它只是打印......它不返回任何东西。

让我提供一种不同的方法:

以下将为您提供过去 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 并在后续搜索中使用它,而不是固定的 delta 小时。

然后,您可以搜索结果以查看它是否包含您的文件:

if my_file in result:
    print("Sky is falling. Take cover.")
于 2018-08-30T15:20:58.500 回答