Python文件监听工具pyinotify与watchdog是两种常用于实时监控文件系统变化的工具,其中pyinotify是Linux下的一款文件系统事件监控工具,而watchdog则是跨平台的文件变更监控库。
pyinotify的使用
安装
在Linux上安装pyinotify可以通过以下命令:
sudo apt-get install python-pyinotify
实例
以下是一个简单的pyinotify示例,监控指定目录下的文件创建、删除及修改事件,并将事件信息打印出来:
import pyinotify
# 定义处理事件的回调函数
def process_event(event):
print("Event: %s" % event.pathname)
if event.mask & pyinotify.IN_CREATE:
print("File created.")
elif event.mask & pyinotify.IN_DELETE:
print("File deleted.")
elif event.mask & pyinotify.IN_MODIFY:
print("File modified.")
# 定义监控器
wm = pyinotify.WatchManager()
# 定义监听器
notifier = pyinotify.Notifier(wm, process_event)
# 添加监控路径及事件
wm.add_watch('/tmp', pyinotify.IN_CREATE | pyinotify.IN_DELETE | pyinotify.IN_MODIFY)
# 启动监听
notifier.loop()
watchdog的使用
安装
在任意操作系统下安装watchdog都可以通过以下命令:
pip install watchdog
实例
以下是一个简单的watchdog示例,监控指定目录下的文件创建、删除及修改事件,并将事件信息打印出来:
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# 定义处理事件的回调函数
class MyHandler(FileSystemEventHandler):
def on_created(self, event):
print("File created: %s" % event.src_path)
def on_deleted(self, event):
print("File deleted: %s" % event.src_path)
def on_modified(self, event):
print("File modified: %s" % event.src_path)
# 定义监控路径及事件
path = '/tmp'
events = FileSystemEventHandler()
events.on_created = MyHandler().on_created
events.on_deleted = MyHandler().on_deleted
events.on_modified = MyHandler().on_modified
# 定义监控器
observer = Observer()
observer.schedule(events, path, recursive=True)
# 启动监听
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
以上示例可以在任意操作系统下运行,可以复制到文件中运行测试。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python文件监听工具pyinotify与watchdog实例 - Python技术站