Я анализирую файл журнала в поисках тега 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
ОШИБКА - первая причина ошибки
ОШИБКА - первая причина ошибки; ОШИБКА - вторая причина ошибки
ОШИБКА - первая причина ошибки; ОШИБКА - вторая причина ошибки; ОШИБКА - сбой операции