使用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网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
Jun 09 Python
Python中用函数作为返回值和实现闭包的教程
Apr 27 Python
python实现从ftp服务器下载文件的方法
Apr 30 Python
wxpython布局的实现方法
Nov 01 Python
浅析Python3 pip换源问题
Jan 06 Python
Python Django view 两种return的实现方式
Mar 16 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
python实现数字炸弹游戏
Jul 17 Python
基于Python实现粒子滤波效果
Dec 01 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
Jan 13 Python
Django url 路由匹配过程详解
Jan 22 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 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
自动跳转中英文页面
2006/10/09 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
php实现图片缩放功能类
2013/12/18 PHP
php中in_array函数用法探究
2014/11/25 PHP
php中socket通信机制实例详解
2015/01/03 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
js格式化货币数据实现代码
2013/09/04 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
浅析matlab中imadjust函数
2020/02/27 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
手机配件第一品牌:ZAGG
2017/05/28 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
机械工程师的岗位职责
2013/11/17 职场文书
校园文化建设方案
2014/02/03 职场文书
酒店总经理助理职责
2014/02/12 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
vue 给数组添加新对象并赋值
2022/04/20 Vue.js