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


Posted in Python onJune 04, 2018

利用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 相关文章推荐
python实现电子词典
Apr 23 Python
Python生成pdf文件的方法
Aug 04 Python
Python常用正则表达式符号浅析
Aug 13 Python
Python的gevent框架的入门教程
Apr 29 Python
Python线程详解
Jun 24 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
python实现三维拟合的方法
Dec 29 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
Python基础之文件读取的讲解
Feb 16 Python
Python Merge函数原理及用法解析
Sep 16 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
Python 数据可视化工具 Pyecharts 安装及应用
Apr 20 Python
Python操作mongodb的9个步骤
Jun 04 #Python
Python中property函数用法实例分析
Jun 04 #Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 #Python
python最长回文串算法
Jun 04 #Python
python中字符串的操作方法大全
Jun 03 #Python
Python Logging 日志记录入门学习
Jun 02 #Python
python实现寻找最长回文子序列的方法
Jun 02 #Python
You might like
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
简介Python中用于处理字符串的center()方法
2015/05/18 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
对于Python深浅拷贝的理解
2019/07/29 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
趣味游戏活动方案
2014/02/07 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
12岁生日演讲稿
2014/05/14 职场文书
网络营销策划方案
2014/06/04 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL