Python使用pyinotify模拟tail命令,pyinotifytail,tail -f 的功能非
Python使用pyinotify模拟tail命令,pyinotifytail,tail -f 的功能非
tail -f 的功能非常好用。我们用Python也可以实现这样的功能。
实现的原理是通过Python版本的inotify获得文件的更新消息,从而读取更新的行。pyinotify的下载地址https://github.com/seb-m/pyinotify
下载解压后得到如下文件
#lsACKS build common COPYING dist MANIFEST.in old python2 python3 README.md setup.py
执行如下命令进行安装。
python setup.py buildpython setup.py install
然后就可以使用Python版本的inotify功能了。下面是我写的一个简单的tail -f文件的实现。
import pyinotifyimport timeimport osclass ProcessTransientFile(pyinotify.ProcessEvent): def process_IN_MODIFY(self, event): line = file.readline() if line: print line, # already has newlinefilename = '/tmp/test1234'file = open(filename,'r')#Find the size of the file and move to the endst_results = os.stat(filename)st_size = st_results[6]file.seek(st_size)wm = pyinotify.WatchManager()notifier = pyinotify.Notifier(wm)wm.watch_transient_file(filename, pyinotify.IN_MODIFY, ProcessTransientFile)notifier.loop()
tail的文件为/tmp/test1234,通过向/tmp/test1234写入内容,可以看到python脚本可以动态显示更新的内容。这个小脚本只是抛砖引玉。通过监听文件,尤其是日志文件可以实现很多诸如报警、自动控制等功能
相关内容
- python编写的一个简单的扫描端口的程序,python编写端口
- python通过luhn算法实现的信用卡卡号验证代码,pythonlu
- python在windows下实现ping操作并接收返回信息,pythonping
- 一个简单的python编写的猜数字游戏代码,python编写猜数
- python实例 盖房子种树记好时间,python实例,问题描述:
- 利用python查询港澳通行证办理进度,python港澳通行证
- python获取每个月的第一天,python获取每个月,>>>
- 基于用户的协同过滤算法,用户协同过滤算法,本代码是
- python获得本机非127.0.0.1的ip地址,python机非,python获得本
- PyQt写的图片浏览器,PyQt写图片浏览器,开发环境: Cent
评论关闭