python 读取日志文件_如何在Python中跟踪日志文件?
使用SH模块(PIP安装sh):from sh import tail# runs foreverfor line in tail("-f", "/var/log/some_log_file.log", _iter=True):
print(line)
[最新情况]
因为.尾巴和._iter=True是一个生成器,您可以:import sh
tail = sh.tail("-f", "/var/log/some_log_file.log", _iter=True)
然后,您可以使用以下方法“getNewData”:new_data = tail.next()
请注意,如果尾缓冲区是空的,它将阻塞直到有更多的数据(从您的问题,它不清楚您想做什么,在这种情况下)。
[最新情况]如果将-f替换为-f,这是可行的,但是在Python中,它将是锁定的。如果有可能的话,我会更感兴趣的是,如果可能的话,我可以调用一个函数来获取我想要的新数据。-伊莱
容器生成器将尾调用放置在一个时间真循环中,并捕获最终的I/O异常,其效果与-F几乎相同。def tail_F(some_file):
while True:
try:
for line in sh.tail("-f", some_file, _iter=True):
yield line except sh.ErrorReturnCode_1:
yield None
如果无法访问该文件,生成器将不返回任何。但是,如果文件是可访问的,它仍然会阻塞,直到有新的数据为止。我还不清楚你在这件事上想做什么。
雷蒙德·赫廷格的做法似乎相当不错:def tail_F(some_file):
first_call = True
while True:
try:
with open(some_file) as input:
if first_call:
input.seek(0, 2)
first_call = False
latest_data = input.read()
while True:
if '\n' not in latest_data:
latest_data += input.read()
if '\n' not in latest_data:
yield ''
if not os.path.isfile(some_file):
break
continue
latest_lines = latest_data.split('\n')
if latest_data[-1] != '\n':
latest_data = latest_lines[-1]
else:
latest_data = input.read()
for line in latest_lines[:-1]:
yield line + '\n'
except IOError:
yield ''
如果文件无法访问或没有新数据,此生成器将返回“。
[最新情况]最后一个答案的第二个绕到文件的顶部,它似乎在数据耗尽的时候出现。-伊莱
我认为当尾过程结束时,第二行将输出最后十行,-f每当出现I/O错误时。这个tail --follow --retry在大多数情况下,我可以在类似Unix的环境中考虑到行为。
也许,如果你更新你的问题来解释你真正的目标是什么(你为什么想模仿尾巴-重试),你会得到一个更好的答案。最后一个答案实际上不是跟随尾巴,只是读取运行时可用的内容。-伊莱
当然,在默认情况下,尾巴会显示最后10行.您可以使用file.find定位文件末尾的文件指针,我将留给读者一个适当的实现作为练习。
与基于子进程的解决方案相比,IMHO的file.read()方法要优雅得多。
python 读取日志文件_如何在Python中跟踪日志文件?相关推荐
- macos 虚拟镜像文件_如何在macOS中使用虚拟文件测试网络或硬盘速度
macos 虚拟镜像文件 File transfer speeds can vary greatly from device to device. The same holds true for ne ...
- chrome查看网页文件_如何在Chrome中直接将文件和网页下载到Google云端硬盘
chrome查看网页文件 We've all downloaded files from the web to our computer. However, if you'd rather downl ...
- git 还原文件到其他版本_如何在Git中还原旧文件版本
git 还原文件到其他版本 读: 第1部分:什么是Git? 第2部分:Git入门 第3部分:创建第一个Git存储库 第4部分:如何在Git中还原旧文件版本 第5部分:3个用于Git的图形工具 第6部分 ...
- python如何读取uni文件_如何在Python中通过HTTP与UniProt交谈?
我试图从UniProt获得一些结果,这是一个蛋白质数据库(细节并不重要).我正在尝试使用一种从一种ID转换为另一种ID的脚本.我能够在浏览器上手动执行此操作,但无法在 Python中执行此操作. 在h ...
- python队列怎么用_如何在Python中使用多处理队列? - python
我很难理解多处理队列如何在python上工作以及如何实现它.假设我有两个python模块,它们从共享文件中访问数据,我们将这两个模块称为writer和Reader.我的计划是让读取器和写入器都将请求放 ...
- python 读取excel图片_如何用Python读取Excel中图片?
公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...
- python绘图背景透明_如何在 Matplotlib 中更改绘图背景
介绍Matplotlib是Python中使用最广泛的数据可视化库之一.无论是简单还是复杂的可视化项目,它都是大多数人的首选库.在本教程中,我们将研究如何在Matplotlib中更改绘图的背景.导入数据 ...
- 怎么用python读取excel图_如何用Python读取Excel中图片?
公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...
- python静态变量计数器_如何在Python中使用静态变量在计数
今天,在用Python写一个统计一个文件下有多少文件的小标本时,遇到了一个很棘手的问题.如何在Python中使用静态变量来计数.然后,就在网上一通查找,找的方法都是利用类的方法来实现静态变量.说实话没 ...
- python 读取内存二叉树_二叉树类python
python中的树数据结构 线性数据中的典型顺序表和链表已经讲完: <顺序表数据结构在python中的应用> <python实现单向链表数据结构及其基本方法> <pyth ...
最新文章
- 腾讯AR开放平台今日正式开放,提供识别、追踪、展现等多项能力
- (一)docker run 命令参数
- 从代码角度揭示:华为鸿蒙的“套壳”真相!
- 产业互联网的“神”在哪里?
- CleanCodeHandbook Chapter 8: Dynamic Programming(42-47)
- 模型相关:SolidWorks创建Cube模型,在3DMax中给不同面添加不同颜色,导出自带纹理的FBX至Unity
- weblogic 正在启动 wsee服务_详解LINUX安装部署weblogic集群--第二部分
- 开课吧课堂:人工智能行业走向如何?
- oracle学习的一些网站收藏
- 计算机ppt制作培训心得,ppt培训心得体会总结范文
- HTML5 标签大全
- 常见的几种多媒体设计框架
- 【工具篇】ip2domain - 批量ip反查域名及备案信息工具
- 微信好友只有昵称没有微信号_为什么有些好友名片有显示微信号,有些却没有,怎么回事?急...
- java -- 百度API 接口使用
- 《2023新一代数字办公白皮书》正式发布!| 爱分析报告
- MySQL 8.0原理与实战一网打尽,甲骨文数据库专家硬刚5年之作
- ORACLE的HINT详解
- Sort sort =new Sort(Sort.Direction.ASC,“id“)
- 城市公交查询系统android