如何创建文件系统监视器以捕获对文件所做的每个更改

时间:2013-03-13 21:20:23

标签: python linux windows file filesystems

我想创建一个文件系统监视器,只要对文件系统上的任何文件进行更改,就会发出通知,尤其是写入,新文件创建或重命名。

我做过研究,发现像FindFirstChangeNotification函数,pyinotify

这样的东西

如何访问日志并使用它来执行上述操作?

软件将使用任何文件更改进行进一步计算,如何进行?

平台:Windows(优先级),Linux

1 个答案:

答案 0 :(得分:2)

你应该看看watchdog,它是一个用于监控文件系统的python库,适用于Linux和Windows。

导入时间 来自watchdog.observers导入Observer 来自watchdog.events import LoggingEventHandler

if __name__ == "__main__":
    event_handler = LoggingEventHandler()
    observer = Observer()
    # you may need to use path='c:\' for windows below
    observer.schedule(event_handler, path='/', recursive=True)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

您希望将LoggingEventHandler替换为您自己的类,该类派生自FileSystemEventHandler,实施on_createdon_modified等。

最后请注意,观看整个系统中的每个文件可能会导致您出现可扩展性问题。您最好尝试缩小您想要监控的内容。