3 svar
122 visningar
Jannebanan behöver inte mer hjälp
Jannebanan 2
Postad: 9 maj 2022 15:12

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.

CurtJ 1201
Postad: 9 maj 2022 15:23

Inte så konstigt. Du använder  aldrig raderna du läser från filen.

Jannebanan 2
Postad: 9 maj 2022 16:18
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?

CurtJ 1201
Postad: 9 maj 2022 18:45 Redigerad: 9 maj 2022 18:59

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)

Svara
Close