Sortera ut vissa ord från fil i Python
Hej
Jag har en logfifl som ser ut på följande sett:
[2021-01-15] [false] error
[2020-10-23] [false] error
[2019-04-30] [true] mod_jk child workerEnv in error state 9
[2014-12-31] [false] error
[2009-05-02] [true] jk2_init() Found child 6277 in scoreboard slot 7
osv
Jag är ute efter ett script som läser från en fil och filtrerar bort [false] / [true] så resultatet bara blir datumet och meddelandet så det ser ut så här:
[2014-12-31] error
with open(r'C:\Users\etc\etc\test.log') as file:
for line in file.readline():
words=file.readline()
a_string = '[error]'
stripped_string = a_string.replace('[error]', '')
print(stripped_string)
så ser mitt nuvarande script ut med detta printar bara ut tomma rader.
Inte så konstigt. Du använder aldrig raderna du läser från filen.
CurtJ skrev:Inte så konstigt. Du använder aldrig raderna du läser från filen.
Ska jag printa ut words istället för stripped_string?
För det första så läser du en rad två gånger. Jag skulle rekommendera att du gör en läsning av alla rader med file.readlines() i din for-loop så du itererar över raderna. Sen kan du göra replace i varje rad och skriva ut den
ex:
for line in file.readlines():
line = line.replace('[true]','').replace('[false]','')
print(line)