使用Python监视日志中的“成功”或“失败”字符串

时间:2020-07-29 12:53:36

标签: python python-3.x

为了最终学习该语言,我正在尝试做以前在Python中使用Bash的所有事情。但是,这个问题让我感到难过,而且我找不到适合我用例的解决方案。

尽管有一个尝试跑步的元素,但我正在寻找一些方向。

这是问题所在:

我有一个Python脚本,可以启动一个单独的程序来创建并写入日志文件。

我想观看该日志文件,如果脚本在日志中检测到“成功”字符串,则打印出“成功运行”,如果找到“失败”字符串,则打印出“失败运行”。基本过程通常需要大约10秒钟才能到达将“成功”或“失败”写入日志文件的阶段。这两个字符串都不会同时出现在日志中。它要么成功,要么失败。不能两者都是。

我一直试图通过while循环来做到这一点。因此,我可以继续查看日志文件,直到出现字符串,然后在出现该字符串时退出。我只对一个字符串起作用,但是我不确定如何适应另一个字符串。

这是我正在运行的代码。

log_path = "test.log"
success = "Success"
failure = "Failed"

with open(log_path) as log:
    while success != True:
        if success in log.read():
            print("Process Successfully Completed")
            sys.exit()

1 个答案:

答案 0 :(得分:0)

多亏了alaniwi和David的上述指导,我实际上已经使用以下代码设法使其工作。所以我本来应该很亲密。

我将所有内容包装在while True中,将log.read()放入变量中,并添加了elif。对任何有关这是否是最Python化的方法的指针绝对感兴趣吗?因此,请根据需要进行批评。

    while True:
        with open(log_path) as log:

            read_log = log.read()

            if success in read_log:
                print("Process Successfully Completed")
                sys.exit()

            elif fail in read_log:
                print("Failed")
                sys.exit()
相关问题