首页 / PYTHON / python实现实时监控文件
python实现实时监控文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python实现实时监控文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1999字,纯文字阅读大概需要3分钟。
内容图文
![python实现实时监控文件](/upload/InfoBanner/zyjiaocheng/432/214b6ee0d0324a869664eb24fa9e1f79.jpg)
第一种:
这个是最简单的和容易理解的,因为大家都知道linux下有tail命令,所以你可以直接用Popen()函数去调用这个命令来执行获取输出,代码如下:
logfile='access.log' command='tail -f ‘+logfile+'|grep “timeout”‘ popen=subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True) while True: line=popen.stdout.readline().strip() print line
第二种:
采用python对文件的操作来实现,用文件对象的tell(), seek()方法分别得到当前文件位置和要移动到的位置,代码如下:
import time file = open(‘access.log') while 1: where = file.tell() line = file.readline() if not line: time.sleep(1) file.seek(where) else: print line,
第三种:
利用python的 yield来实现一个生成器函数,然后调用这个生成器函数,这样当日志文件有变化时就打印新的行,代码如下:
import time def follow(thefile): thefile.seek(0,2) while True: line = thefile.readline() if not line: time.sleep(0.1) continue yield line if __name__ == ‘__main__': logfile = open(“access-log”,”r”) loglines = follow(logfile) for line in loglines: print line,
最后解释下seek()函数的用法,这个函数接收2个参数:file.seek(off, whence=0),从文件中移动off个操作标记(文件指针),正数往结束方向移动,负数往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。
以上就是三个常用方法,具体日志分析的代码大家可以根据自己的业务逻辑去实现,完毕。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支PHP中文网。
更多python实现实时监控文件相关文章请关注PHP中文网!
内容总结
以上是互联网集市为您收集整理的python实现实时监控文件全部内容,希望文章能够帮你解决python实现实时监控文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。