Textdatei wird nicht komplett eingelesen
Verfasst: Dienstag 19. Juni 2012, 11:31
Guten Tag,
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:
Als Coding habe ich ganz am Anfang folgendes stehen:
Die Auswertung des ganzen funktioniert eigentlich.
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:
Also am Anfang kommen irgendwelche seltsamen Zeichen, und danach kommt der Text.
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:
ausprobiert, aber entweder die Datei wird weiterhin nur halb ausgelesen, oder ich bekomme irgendwo folgenden Fehler:
Ich hab da jetzt ewig gegoogelt, aber bis jetzt leider keine Lösung gefunden.
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
weiter aus. (Falls das wichtig ist.)
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.
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.
