python list append for for loop仅获取完整列表

时间:2019-06-13 11:13:04

标签: python python-3.x list for-loop

我解析一个日志文件,寻找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

ERROR-错误的第一原因; ERROR-错误的第二原因; ERROR-操作失败

实际结果:

cat failedfilename

错误-错误的第一个原因

ERROR-错误的第一原因; ERROR-错误的第二原因

ERROR-错误的第一原因; ERROR-错误的第二原因; ERROR-操作失败

0 个答案:

没有答案