使用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多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
Python处理文本文件中控制字符的方法
Feb 07 Python
python 输出所有大小写字母的方法
Jan 02 Python
Python构建图像分类识别器的方法
Jan 12 Python
Python线程之定位与销毁的实现
Feb 17 Python
python调试神器PySnooper的使用
Jul 03 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
python处理写入数据代码讲解
Oct 22 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
跟老齐学Python之Python安装
2014/09/12 Python
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
使用Python对SQLite数据库操作
2017/04/06 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
python实现电子词典
2020/03/03 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
销售人员自我评价
2014/02/01 职场文书
高考备战决心书
2014/03/11 职场文书
售后求职信范文
2014/03/15 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
2014年科研工作总结
2014/12/03 职场文书
居委会工作总结2015
2015/05/18 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android