• 技术文章 >Python技术 >Python高级

    Python的监控功能示例

    PythonPython2019-06-19 09:56:28原创3387
    Pyinotify是一个Python模块,用来监测文件系统的变化。 Pyinotify依赖于Linux内核的功能—inotify(内核2.6.13合并)。 inotify的是一个事件驱动的通知器,其通知接口通过三个系统调用从内核空间到用户空间。pyinotify结合这些系统调用,并提供一个顶级的抽象和一个通用的方式来处理这些功能。

    pyinotify 就是通过 调用系统的inotify来实现通知的

    Inotify 既可以监视文件,也可以监视目录

    Inotify 使用系统调用而非 SIGIO 来通知文件系统事件。

    Inotify 可以监视的文件系统事件包括:

    360截图17001018111136100.png

    案例:Python监控目录变化

    #!/usr/bin/env python
    #coding=utf-8
     
    import os
    from pyinotify import WatchManager, Notifier, ProcessEvent, IN_DELETE, IN_CREATE,IN_MODIFY
    wm = WatchManager() 
    mask = IN_DELETE | IN_CREATE |IN_MODIFY  # watched events
     
    class PFilePath(ProcessEvent):
      def process_IN_CREATE(self, event):
        print  "Create file: %s " %  os.path.join(event.path, event.name)
     
      def process_IN_DELETE(self, event):
        print  "Delete file: %s " %  os.path.join(event.path, event.name)
     
      def process_IN_MODIFY(self, event):
          print  "Modify file: %s " %  os.path.join(event.path, event.name)
     
    if __name__ == "__main__":
     
      notifier = Notifier(wm, PFilePath())
      wdd = wm.add_watch('.', mask, rec=True)
     
      while True:
        try :
          notifier.process_events()
          if notifier.check_events():
            notifier.read_events()
        except KeyboardInterrupt:
          notifier.stop()
          break
    专题推荐:python
    上一篇:用Python绘制几个动画 下一篇:用Python来统计本机CPU利用率

    相关文章推荐

    • Python举例实现马耳可夫链算法• Python中的多态怎么理解?• Python中的center()是怎么用的

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网