1

我正在处理的 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")
4

1 回答 1

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")
于 2012-12-06T21:03:41.200 回答