使用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的Django框架中的ORM建立查询API
Apr 20 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
python列表切片和嵌套列表取值操作详解
Feb 27 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php画图实例
2014/11/05 PHP
php实现上传图片文件代码
2015/07/19 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
微信JS接口大全
2016/08/25 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
vue中post请求以a=a&b=b 的格式写遇到的问题
2018/04/27 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
Python对文件操作知识汇总
2016/05/15 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
python将unicode转为str的方法
2017/06/21 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python装饰器代码深入讲解
2021/03/01 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
机械专业个人求职自荐信格式
2013/09/21 职场文书
小学毕业家长寄语
2014/01/19 职场文书
大学毕业自我评价
2014/02/02 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
趣味运动会策划方案
2014/06/02 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
教师四风问题整改措施
2014/09/25 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js