使用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中的Null模式与桥接模式编程
Feb 02 Python
Django自定义分页效果
Jun 27 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
Python设置在shell脚本中自动补全功能的方法
Jun 25 Python
windows下numpy下载与安装图文教程
Apr 02 Python
20行python代码的入门级小游戏的详解
May 05 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
详解Python绘图Turtle库
Oct 12 Python
Python configparser模块操作代码实例
Jun 08 Python
浅谈Python中的继承
Jun 19 Python
Python趣味入门教程之循环语句while
Aug 26 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 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
第一个无线电台是由谁发明的
2021/03/01 无线电
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
js实现蒙版效果
2020/01/11 Javascript
python获取代理IP的实例分享
2018/05/07 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
pygame实现简易飞机大战
2018/09/11 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
C#公司笔试题
2014/03/28 面试题
亲属关系公证书
2014/04/08 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
股权转让协议书
2014/12/07 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
小马王观后感
2015/06/11 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers