如何用 Python 实时监控文件?方法有三种你喜欢哪一种?


第一种:

这个是最简单的和容易理解的,因为大家都知道 linux 下有 tail 命令,所以你可以直接用 Popen() 函数去调用这个命令来执行获取输出,代码如下:

第二种:

采用 python 对文件的操作来实现,用文件对象的 tell(), seek() 方法分别得到当前文件位置和要移动到的位置,代码如下:

第三种:

利用 python 的 yield 来实现一个生成器函数,然后调用这个生成器函数,这样当日志文件有变化时就打印新的行,代码如下:

最后解释下 seek() 函数的用法,这个函数接收 2 个参数:file.seek(off, whence=0 ),从文件中移动 off 个操作标记(文件指针),正数往结束方向移动,负数往开始方向移动。如果设定了 whence 参数,就以 whence 设定的起始位为准,0 代表从头开始,1 代表当前位置,2 代表文件最末尾位置。

以上就是三个常用方法,具体日志分析的代码大家可以根据自己的业务逻辑去实现,完毕。


转载于:https://juejin.im/post/5be04b45e51d4574d736db89

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值