Ich habe folgende Log-Dateien und ich möchte es spalten und sie in einer geordneten Datenstruktur setzen (so etwas wie eine Liste der Liste) mit Python 3.4Parsing-Protokolldatei mit Python
Die Datei folgt diese Struktur:
Month #1
1465465464555
345646546454
442343423433
724342342655
34324233454
24543534533
***Day # 1
5465465465465455
644654654654454
4435423534833
***Day #2
24876867655
74654654454
643876867433
***Day #3
445543534655
344876867854
64365465433
Month #2
7454353455
84756756454
64563453433
***Day # 1
44756756655
34453453454
243867867433
***Day #2
64465465455
74454353454
34878733
***Day #3
1449898955
643434354
843090909888433
Ziel ist es, in der Lage zu sein, die Anzahl der Monate zu fahren und jeden Tag getrennt arbeiten zu können. ich sollte in der Lage sein, so etwas zu tun:
for month in months:
for day in days:
for number in day:
print(number)
Die Lösung, die ich angenommen habe Monate aus der Datei ist folgendes zu extrahieren, aber es ist nicht eine intelligente Lösung. Ich brauche etwas besser
lista = []
in_file = open("log.txt","r")
righe= in_file.readlines()
in_file.close()
for i in range(0,len(righe)):
if "Month" in righe[i]:
lista.append(i)
lista.append((len(righe)-1))
counter = 1
for i in range(0,len(lista)-1):
out_file = open(str(counter)+".txt","w")
for j in range(lista[i], lista[i+1]):
out_file.write(righe[j])
out_file.close()
counter=counter+1
for i in range(1,counter):
print("Month: ", i)
mano = open(str(i)+".txt","r")
righe= mano.readlines()
print(righe)
mano.close()
Eine andere Option könnte sein, einen [ConfigParser] (https://docs.python.org/3.5/library/configparser.html) zu verwenden und Ihre Protokolldatei neu zu formatieren (falls das eine verfügbare Route ist). – pat
Thx für die Antwort auf Paul. Es ist fast genau das, wonach ich gesucht habe. Das Problem ist, dass die verschachtelte Struktur erstellt mich ein wenig von Verwirrung macht. Wie erreiche ich zum Beispiel iterativ alle Tage eines Monats (unter Berücksichtigung , dass ein Tag möglicherweise nicht in einem Monat sein wird)? –