无限期地运行python脚本(作为一个进程,几乎)

时间:2011-07-15 19:36:46

标签: python

我进行了一次测试,一次可能需要15米。在这15米期间,会定期写入日志文件。但是,大多数内容都是无用的。

响应于此,我有一个python脚本,解析无用的文本并显示相关的数据。

我想要实现的目标类似于tail -f log_file,不断更新终端并添加最新的文件。我想如果一个python脚本作为一个进程运行,它可以在测试写入时解析日志文件,然后python脚本可以进入休眠状态,直到写入日志文件后再次中断。

任何想法如何实现这一目标?

我已经有一个执行解析的脚本,我只是不知道如何让它持续有效地完成。

4 个答案:

答案 0 :(得分:3)

看起来你需要像“pytailer”这样的东西: http://code.google.com/p/pytailer/

虽然我自己从未使用过它,但最后一个例子看起来就像你想要的那样。

答案 1 :(得分:3)

您可以让脚本过滤标准输入,并通过它来管道tail -f。当你在stdin上等待时,你的脚本会睡觉,所以效率很高。

例如

python long_running_script.py && tail -f log_file | python filter_logs.py

您的脚本可能类似于

while true:
    line = sys.stdin.readline()
    if filter_line(line): print line

答案 2 :(得分:0)

  

任何想法如何实现这一目标?

这应该很容易做到。您想要的大部分内容已经成为您操作系统的一部分。

python test.py | python log_parser.py

确保您的测试将其日志写入stdout而不是其他文件。对日志记录配置进行少量更改通常很容易做到这一点。

答案 3 :(得分:0)

实施了几乎这个确切的工具后,我使用inotify capability in twisted

取得了很大的成功