gpt4 book ai didi

python - 文件跟随程序

转载 作者:太空宇宙 更新时间:2023-11-04 03:59:27 25 4
gpt4 key购买 nike

我正在尝试构建一个 python 程序,该程序遵循日志文件检查某些模式。 (很像 grep ..)

测试代码“test.py”的一部分是读取标准输入,

import fileinput
for line in fileinput.input():
print line

所以如果我在一个终端中执行此操作

tail -f log.txt | python test.py

在另一个终端

echo "hello" >> log.txt

您期望在第一个终端上打印出 hello,但事实并非如此。如何更改代码?我也想这样用

cat log.txt | python test.py

使用相同的 test.py。

最佳答案

直接回显 sys.stdin 似乎可以在我的 Mac OS 笔记本电脑上工作:

import sys
for line in sys.stdin:
print line.rstrip()

但有趣的是,这在我的 Linux 机器上效果不佳。它最终会打印 tail -f 的输出,但是缓冲肯定会让程序看起来好像没有工作(在等待几秒钟后它会打印出相当大的 block )。

相反,我通过从 sys.stdin 一次读取一个字节来获得更快的响应行为:

import sys

buf = ''
while True:
buf += sys.stdin.read(1)
if buf.endswith('\n'):
print buf[:-1]
buf = ''

关于python - 文件跟随程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23485864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com