模拟管道,实现功能:tail -f access.log | grep '404'

Posted xiongrongqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟管道,实现功能:tail -f access.log | grep '404'相关的知识,希望对你有一定的参考价值。

import time
def tail(filepath):
with open(filepath,‘rb‘) as f:
f.seek(0,2)
while True:
line=f.readline()
if line:
yield line
else:
time.sleep(0.05)

def grep(lines,pattern):
for line in lines:
line=line.decode(‘utf-8‘)
if pattern in line:
yield line


lines=grep(tail(‘access.log‘),‘404‘)

for line in lines:
print(line)

以上是关于模拟管道,实现功能:tail -f access.log | grep '404'的主要内容,如果未能解决你的问题,请参考以下文章

精:.NET Core 管道模型中间件及管道模拟实现

保护代理模式-Access Proxy(Java实现)

迭代器的应用,管道流筛选

queue使用内联函数实现stl功能

模拟Linux的shell

Linux Shell :tail 命令动态显示日志时高亮显示某些关键字