问题:
您有一个由您想要监控的另一个进程写入的日志文件进行更改。每当发生更改时,您都需要读取新数据进行处理。
背景:
您正在考虑使用 PyWin32 库的 win32file.FindNextChangeNotification 函数,但您不确定如何配置它来观看特定文件。
解决方案:引入Watchdog
除了轮询之外,更有效的选择是使用 Watchdog 库。操作方法如下:
import watchdog.observers import watchdog.events class MyEventHandler(watchdog.events.FileSystemEventHandler): def on_modified(self, path, metadata): # Read the modified log file and perform necessary processing # Create a Watchdog observer observer = watchdog.observers.Observer() # Add the log file path to be watched observer.schedule(MyEventHandler(), "path/to/log_file") # Start observing observer.start() # Wait indefinitely for changes observer.join()
注意:
如果您通过映射的网络驱动器监视文件,Windows 可能不会像在网络驱动器上那样“听到”文件的更新。本地磁盘。在这种情况下考虑使用不同的方法。
以上是如何在Python中高效监控文件变化而不需要轮询?的详细内容。更多信息请关注PHP中文网其他相关文章!