список python, добавленный в цикл for, получает только полный список - PullRequest
0 голосов
/ 13 июня 2019

Я анализирую файл журнала в поисках тега ERROR. Если присутствует слово ERROR, я добавляю строку в список, разделенный знаком ";" в CSV-файл. это работает, но список записывается в файл каждый раз, когда элемент проверен я хочу написать только полный список

def failedfile(directory):
    fcause = []
    for f in os.listdir(directory):
        if f.endswith(".log"):
            filepath = os.path.join(directory,f)
            dfr = os.stat(filepath).st_ctime
            dfhr = time.strftime('%d/%m/%Y', time.localtime(dfr))
            with open (filepath, mode="rt", encoding="utf-8") as faillogfile:
                fail = faillogfile.readlines()
                with open(failedfilename, mode='a', newline='') as ff:
                    writer = csv.writer(ff, dialect='excel', delimiter=";")
                    for lines in fail:
                        if "ERROR" in lines:
                            fail2 = ''.join(fail)
                            accessname = re.findall(r'\w{1,4}\-\d{1,3}', fail2)
                            fcause.append(lines)
                            failcause = ';'.join(fcause)
                            print(failcause)
                            market = reglisse(accessname[0])
                            writer.writerow([accessname[0], market, dfhr, failmessage, failcause])
                ff.close
            faillogfile.close
    return (fcause)

Ожидаемый результат: cat failedfilename

ОШИБКА - первая причина ошибки; ОШИБКА - вторая причина ошибки; ОШИБКА - операция не удалась

Фактический результат:

cat failedfilename

ОШИБКА - первая причина ошибки

ОШИБКА - первая причина ошибки; ОШИБКА - вторая причина ошибки

ОШИБКА - первая причина ошибки; ОШИБКА - вторая причина ошибки; ОШИБКА - сбой операции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...