使用watchdog.observers模块监控文件夹的创建和删除
发布时间:2023-12-19 00:03:48
watchdog是一个用于监控文件系统事件的Python库,可以监视文件夹的创建、删除、改名、移动等操作。watchdog.observers模块是watchdog库的一部分,它包含用于观察文件系统事件的类和函数。
下面是一个使用watchdog.observers模块监控文件夹的创建和删除的例子:
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_created(self, event):
if event.is_directory:
print(f"Directory created: {event.src_path}")
else:
print(f"File created: {event.src_path}")
def on_deleted(self, event):
if event.is_directory:
print(f"Directory deleted: {event.src_path}")
else:
print(f"File deleted: {event.src_path}")
if __name__ == '__main__':
path = '/path/to/folder' # 监控的文件夹路径
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
在上面的例子中,我们定义了一个MyHandler类,继承自FileSystemEventHandler类。MyHandler类中的on_created方法处理文件夹或文件创建事件,on_deleted方法处理文件夹或文件删除事件。
在__main__函数中,我们指定要监控的文件夹路径,并创建一个MyHandler实例和一个Observer实例。然后,我们使用observer.schedule方法将事件处理程序与文件夹路径关联起来,并调用observer.start方法开始监控。
最后,我们使用一个try-except块确保监控不被意外中断,并在收到键盘中断信号时调用observer.stop方法停止监控,然后调用observer.join方法等待所有线程结束。
可以根据实际需要对MyHandler类进行扩展,以处理其他类型的文件系统事件,如文件修改、文件移动等。
注意,使用watchdog库需要先安装watchdog库,可以使用pip命令进行安装:
pip install watchdog
上述例子可以用于监控某个文件夹的创建和删除事件。你可以根据具体需求修改MyHandler类中的方法以处理其他事件。
