第一种:

这个是最简单的和容易理解的,因为大家都知道 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

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

  1. python实时监控文件目录_教你三种方法,用 Python实时监控文件

    原标题:教你三种方法,用 Python实时监控文件 在业务稳定性要求比较高的情况下,运维为能及时发现问题,有时需要对应用程序的日志进行实时分析,当符合某个条件时就立刻报警,而不是被动等待出问题后去解决 ...

  2. python监控目录变化_如何用python语言监控文件或目录变化

    本文python语言实例实现的功能是监控一个文件或目录的变化,如果有变化,把文件上传备份至备份主机,并且要监控上传过程是否有问题等,具体内容如下,希望对大家学习python语言有所帮助.#!/usr/ ...

  3. 如何用python实时监控股票,并且持续扫描大盘?

    推荐好文: ①程序员用Python爬虫做副业半个月就赚了3W ②程序员别瞎学,这几门语言要被淘汰了- 对于金融分析来说,获取数据是第一步.Python的一个强大功能之一就是数据获取(爬虫).但是对于没 ...

  4. python实时监控文件大小_python实现实时监控文件的方法

    在业务稳定性要求比较高的情况下,运维为能及时发现问题,有时需要对应用程序的日志进行实时分析,当符合某个条件时就立刻报警,而不是被动等待出问题后去解决,比如要监控nginx的$request_time和 ...

  5. linux下使用inotify实时监控文件变更,做完整性检查

    完整性检查是HIDS的重要组成部分之一,linux下做完整性检查的思路有3个 1.哈希对比 2.签名校验 3.inotify 方法有2个: A.定期检测,例如通过cron或程序内置计时器 B.实时检测 ...

  6. linux监控覆盖视频恢复,linux下使用inotify实时监控文件变更,做完整性检查

    linux下使用inotify实时监控文件变更,做完整性检查 完整性检查是HIDS的重要组成部分之一,linux下做完整性检查的思路有3个 1.哈希对比 2.签名校验 3.inotify 方法有2个: ...

  7. python实时监控_python实时监控cpu小工具

    本文实例为大家分享了python实时监控cpu的工具,供大家参考,具体内容如下 虽然写的很不完善,但是当练手吧,对于实时监控cpu还是有点用处的,虽然android studio已经提供了一样的功能, ...

  8. python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...

    如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...

  9. inotifywait监听php,inotifywait 是一个可以实时监控文件变动的工具

    inotifywait 是一个可以实时监控文件变动的工具,它利用linux内核中的inotify机制实现监控功能. 查看内核版本 [root@Oracle ~]# uname -r 2.6.32-22 ...

  10. Python实时检测文件及文件夹变动

    Python实时检测文件及文件夹变动 比较流行的是通过watchdog,一个例子: import time import logging from watchdog.observers import ...

最新文章

  1. 英特尔 QLC 3D NAND 数据存储
  2. .NET企业级应用架构设计系列之应用服务器
  3. win7系统怎么获取system权限?
  4. 后台技术-JavaWeb项目初识
  5. Erlang列表操作里面的变量绑定规则
  6. Redis-12Redis 流水线( pipeline )
  7. 手机号正则_一起刷题学习正则表达式
  8. JDBC连接informix数据库
  9. Ubuntu镜像的下载
  10. ttest求pvalue_.net 调用R语言的函数(计算统计值pvalue 对应excel :ttest)
  11. 可调直流稳压电源的工作原理以及常见问题
  12. Similarity Reasoning and Filtration for Image-Text Matching
  13. 通过主成分分析实现三维模型对齐【Principal Component Analysis】
  14. 如何删除复制文字产生的word回车换行符
  15. 在hive上创建数据
  16. 3DMAX、C4D、Maya导出fbx到Unity设置
  17. unity3dk帧_Unity K帧动画
  18. 【字体】写代码编程字体展示推荐
  19. MySQL【存储过程与存储函数】
  20. 淘宝接口API开发 taobao代购系统API接口调用

热门文章

  1. jQuery UI DatepickerDatetimepicker添加 时-分-秒 并且,判断
  2. 转:如何编程实现启用禁用网卡
  3. BZOJ3674: 可持久化并查集加强版
  4. CRM WEB UI 01 BOL向导创建的搜索
  5. SAE实践——用SVN命令行同步/提交代码
  6. spring 的延迟加载
  7. 05.javascript访问CSS
  8. 商厂里调货拿包包程序
  9. 【ACwing 95】费解的开关——枚举 + 搜索
  10. oracle sql 字段行转列