使用Python监控文件内容变化代码实例

 更新时间:2018年06月04日 08:52:57   作者:guoswcfl  
在python中文件监控主要有两个库,一个是pyinotify,一个是watchdog。pyinotify依赖于Linux平台的inotify,今天我们就来探讨下pyinotify.

利用seek监控文件内容,并打印出变化内容:

#/usr/bin/env python
#-*- coding=utf-8 -*-
 
pos = 0
while True:
  con = open("a.txt")
  if pos != 0:
    con.seek(pos,0)
  while True:
  line = con.readline()
  if line.strip():
    print line.strip()
  pos = pos + len(line)
  if not line.strip():
    break
  con.close()

利用工具pyinotify监控文件内容变化,当文件逐渐变大时,可轻松完成任务:

#!/usr/bin/env python
#-*- coding=utf-8 -*-
import os
import datetime
import pyinotify
import logging
 
pos = 0
def printlog():
  global pos
  try:
    fd = open("log/a.txt")
  if pos != 0:
    fd.seek(pos,0)
  while True:
    line = fd.readline()
    if line.strip():
      print line.strip()
    pos = pos + len(line)
    if not line.strip():
    break
  fd.close()
  except Exception,e:
  print str(e)
 
class MyEventHandler(pyinotify.ProcessEvent):
  def process_IN_MODIFY(self,event):
    try:
    printlog()
  except Exception,e:
    print str(e)
 
def main():
  printlog()
  wm = pyinotify.WatchManager()
  wm.add_watch("log/a.txt",pyinotify.ALL_EVENTS,rec=True)
  eh = MyEventHandler()
  notifier = pyinotify.Notifier(wm,eh)
  notifier.loop()
if __name__ == "__main__":
  main()

相关文章

  • 使用Python对MySQL数据操作

    使用Python对MySQL数据操作

    本文介绍Python3使用PyMySQL连接数据库,并实现简单的增删改查。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • 使用Python给PDF添加目录书签的实现方法

    使用Python给PDF添加目录书签的实现方法

    有时下载到扫描版的 PDF 是不带书签目录的,这样阅读起来很不方便,下面通过 python 实现一个半自动化添加书签目录的脚本,文中通过代码介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-10-10
  • django自定义非主键自增字段类型详解(auto increment field)

    django自定义非主键自增字段类型详解(auto increment field)

    这篇文章主要介绍了django自定义非主键自增字段类型详解(auto increment field),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 对Tensorflow中的变量初始化函数详解

    对Tensorflow中的变量初始化函数详解

    今天小编就为大家分享一篇对Tensorflow中的变量初始化函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 教你用Type Hint提高Python程序开发效率

    教你用Type Hint提高Python程序开发效率

    本文通过介绍和实例教大家如何利用Type Hint来提升Python程序开发效率,对大家使用python开发很有帮助,有需要的参考学习。
    2016-08-08
  • Django项目在pycharm新建的步骤方法

    Django项目在pycharm新建的步骤方法

    在本篇文章里小编给大家整理的是一篇关于Django项目在pycharm新建的步骤方法,有兴趣的朋友们可以学习参考下。
    2021-03-03
  • 对Python使用mfcc的两种方式详解

    对Python使用mfcc的两种方式详解

    今天小编就为大家分享一篇对Python使用mfcc的两种方式详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 在Django同1个页面中的多表单处理详解

    在Django同1个页面中的多表单处理详解

    这篇文章主要给大家介绍了在Django同1个页面中的多表单处理的相关资料,文章先给大家介绍了如何快速上手Django实现项目的方法,方便让大家理解和学习,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • pytorch训练imagenet分类的方法

    pytorch训练imagenet分类的方法

    今天小编就为大家分享一篇pytorch训练imagenet分类的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python进程池和线程池的区别

    python进程池和线程池的区别

    本文主要介绍了python进程池和线程池的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12

最新评论