需要帮助使用Python来解析日志文件

时间:2012-12-06 20:59:47

标签: python if-statement printing

我正在处理我正在处理的Python脚本问题,它在日志文件中搜索文本字符串的出现,如果找到将它们打印到另一个文件,我尝试使用break但是这会结束这个过程而我最终在另一个文件中只有一个条目,如果我不使用break,它会将结束语句应用于所有不包含文本的行,基本上我想最终得到一个日志文件,其中包含所有文本的出现,如果文本没有出现在源日志文件的任何行中,我希望只有一行打印到新的日志文件,说没有找到任何内容,这就是我现在正在尝试的代码 -

with open("/var/log/syslog", "r") as vpnfile:
    for line in vpnfile:
        if "failed CHAP" in line:
            print (line,)
        elif "failed CHAP" not in line:    
            continue
        else:
            print ("Nadda")

1 个答案:

答案 0 :(得分:0)

这是你的意思吗?

found = []
with open("/var/log/syslog", "r") as vpnfile:
    for line in vpnfile:
        if "failed CHAP" in line:
            found.append(line)
        # no need to check if "failed CHAP" is not in the line, since you
        # already know it's not there from the first test failing
if found:
    print(" ".join(found))
else:
    print("Nadda")