1

这是我第一次在这里发帖,我只是在学习 python,所以请多多包涵。我在网上和其他地方都很好看,试图找到这个问题的答案,但是,唉,网络似乎失去了!

我有一个每天生成的日志文件,其中可能包含许多不同语法的错误。其中一些很重要,而另一些则可以忽略不计,但由于它们都包含文本“错误”,我不能只搜索一个词。

我有一个错误文本列表,从以前在一个文件中看到它们时开始,我想将日志文件与它进行比较以查找匹配项,以便在看到任何错误时发出警告。

我已经设法让它为一个错误工作,但我不能让它为列表工作。

工作的代码如下:

    log_file = open ('a file location' , 'r')
    read_file = file.read ()
    search = read_file.find ('Error type 1 happened at x')
    if search != -1:
        print 'Error found in  log at point ' + str((search)) + '!!!'
    else :
        print "All is good!!!  :-D "

对于列表,我尝试了以下方法:

    load_log_file = open ('a file location' , 'r')
    read_log_file = load_log_file.read ()

    def txt_search (read_log_file):
        errors = open ('another file location' , 'r')
    for error in errors.readlines() :
            if error.strip ('\r\n') in read_log_file:
                return 'Error found in log !!!'
            else :
                return "All is good!!!  :-D "

    print txt_search (read_log_file)

运行时我得到了结果,但它总是以“一切都很好”返回。我可能遗漏了一些非常明显的东西,但任何帮助都会得到很大的帮助。

非常感谢

4

1 回答 1

2

你过早地回来了。

load_log_file = open ('a file location' , 'r')
read_log_file = load_log_file.read ()

def txt_search (read_log_file):
    errors = open ('another file location' , 'r')
    for error in errors.readlines() :
        if error.strip ('\r\n') in read_log_file:
            return 'Error found in log !!!'

    return "All is good!!!  :-D "

print txt_search (read_log_file)

在您的原始代码中发生的是它查找第一个错误,没有找到它,然后返回“一切都很好”。永远记住return语句结束函数。

于 2013-04-09T10:04:13.163 回答