ich sitze jetzt schon einige Stunden an einem Problem und komme einfach nicht weiter.
Wobei ich gleich dazu sagen muss, dass ich gerade erst angefangen habe Python zu lernen.
Ich möchte eine Textdatei (.log) einlesen und bestimmte Teile davon auswerten.
Das einlesen mache ich wie folgt:
Code: Alles auswählen
fobj = open(DateiPfad, "r")
DateiInhalt = fobj.read()
fobj.close()
Code: Alles auswählen
#!/usr/bin/env python
# encoding: utf-8
# -*- coding: utf-8 -*-
Allerdings habe ich das Problem, dass manche Dateien nur zum Teil eingelesen werden.
Die log Dateien die ich einlesen will, sehen immer z.B. so aus:
Code: Alles auswählen
) @) 1 g ô @ … I È W ¦ ï G Þ ! T Õ R „ Ì S ¤ Ñ ' k º ö * n À í n
³
ö
5 © û D m ª
w
½
õ
K › ß ! ¢ å / _ — Ab hier kommt normaler Test der Ausgewertet werden soll.
Jetzt habe ich das Problem, dass bei manchen Dateien nur ein paar von Anfangszeichen eingelesen werden, und der eigentlich benötigte Text wird überhaupt nicht mehr eingelesen.
Ich denke mal das liegt daran, dass irgendwann ein Zeichen kommt, dass Python als Dateiende interpretiert.
Wie gesagt, ich habe nicht viel Erfahrung mit Python. Und habe jetzt schon alles mögliche ausprobiert. Allerdings ohne Erfolg.
Ich habe z.B:
Code: Alles auswählen
fobj = codecs.open(DateiPfad, 'r', 'utf8')
Code: Alles auswählen
python UnicodeDecodeError: 'utf8' codec can't decode byte...
Ich hoffe hier kann mir jemand helfen. Ich komme da irgendwie nicht weiter.
Ach ja, wenn die Datei komplett eingelesen wurde, dann werte ich sie mit
Code: Alles auswählen
DateiInhaltListe = DateiInhalt.split("::")
for Zeile in DateiInhaltListe:
...
Im Prinzip werden ca. 80% der log Dateien richtig eingelesen.
Ich würde mir aber wünschen, dass alle verarbeitet werden.^^
Vielen Dank schon mal.