我想创建一个文件系统监视器,它会在文件系统上的任何文件发生更改时发出通知,尤其是写入、新文件创建或重命名。
我做了研究,发现了FindFirstChangeNotification
函数,pyinotify 之类的东西
如何访问日志并使用它来执行上述操作?
然后软件将使用任何文件更改进行进一步计算,如何进行?
平台:Windows(优先)、Linux
我想创建一个文件系统监视器,它会在文件系统上的任何文件发生更改时发出通知,尤其是写入、新文件创建或重命名。
我做了研究,发现了FindFirstChangeNotification
函数,pyinotify 之类的东西
如何访问日志并使用它来执行上述操作?
然后软件将使用任何文件更改进行进一步计算,如何进行?
平台:Windows(优先)、Linux
你应该看看watchdog,它是一个用于监控文件系统的 python 库,适用于 Linux 和 Windows。
从 watchdog.observers 导入时间 从 watchdog.events 导入观察者 导入 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_created
、on_modified
等。
最后请注意,查看整个系统上的每个文件可能会导致您遇到可伸缩性问题。您最好尝试缩小要监控的范围。