Logdatei schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Hallo,
ich weiß nicht ob ich gerade hier richtig bin, aber das passt gerade zu meiner Frage hier:

Also wenn ich z.B ein Fehlerausgabeprotokoll erstellen will und alle Fehler in einer TXT Datei abspeichert werden sollen, nutze ich für MODUS am Besten "a", weil dann neue Eingaben einfach hinten angehangen werden, ohne dass ich mich erst drum kümmern muss, wo der Cursor steht?

Für Zeilenumbruch besser \n oder \r\n? Ich will die Datei dann auch nicht auslesen, ich will sie am Ende einfach normal öffnen. r\n, wenn ich hauptsächlich unter Windows arbeite?

Letzte Frage: ist es sinnvoller diese "Log-Datei" am Anfang zu öffnen, alles hineinzuschreiben und am Ende des Programmes wieder zu schließen, oder ist es besser, wenn ich sie bei jedem Schleifendurchlauf öffne und dann schließe?
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

meneliel hat geschrieben:Hallo,
ich weiß nicht ob ich gerade hier richtig bin, aber das passt gerade zu meiner Frage hier:
Hallo :)
meneliel hat geschrieben: Also wenn ich z.B ein Fehlerausgabeprotokoll erstellen will und alle Fehler in einer TXT Datei abspeichert werden sollen, nutze ich für MODUS am Besten "a", weil dann neue Eingaben einfach hinten angehangen werden, ohne dass ich mich erst drum kümmern muss, wo der Cursor steht?
mode a ist gut, die Datei wird allerdings immer größer und größer, bei jedem Programmdurchlauf ;)
meneliel hat geschrieben: Für Zeilenumbruch besser \n oder \r\n? Ich will die Datei dann auch nicht auslesen, ich will sie am Ende einfach normal öffnen. r\n, wenn ich hauptsächlich unter Windows arbeite?
Immer nur "\n", das reicht vollkommen.
meneliel hat geschrieben: Letzte Frage: ist es sinnvoller diese "Log-Datei" am Anfang zu öffnen, alles hineinzuschreiben und am Ende des Programmes wieder zu schließen, oder ist es besser, wenn ich sie bei jedem Schleifendurchlauf öffne und dann schließe?
Nicht immer wieder öffnen und schließen. Wenn du das ergebnis unmittelbar in die Datei reinschreiben willst nutze nach dem write(...) die Funktion flush().
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Hallo Zap,
Danke für deine schnelle Antwort.
Zap hat geschrieben:[mode a ist gut, die Datei wird allerdings immer größer und größer, bei jedem Programmdurchlauf ;)
Schon richtig, aber dafür hab ich dann alle Fehler in meinen Daten gesammelt in einer Datei stehen, ich hoffe es sind nicht zu viele, weil dann habe ich ein anderes Problem ;-)
Zap hat geschrieben:Nicht immer wieder öffnen und schließen. Wenn du das ergebnis unmittelbar in die Datei reinschreiben willst nutze nach dem write(...) die Funktion flush().
Das flush() speichert zwischen? Das ist gut :D Danke für den Hinweis.
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

Hallo,

write() buffert(speichert zwischen) und mit flush wird der bisherige Buffer geschrieben.
LG
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

meneliel hat geschrieben: Für Zeilenumbruch besser \n oder \r\n? Ich will die Datei dann auch nicht auslesen, ich will sie am Ende einfach normal öffnen. r\n, wenn ich hauptsächlich unter Windows arbeite?
Wenn du die Datei im Textmodus (also ohne "b") öffnest, schreibt die C-Library automatisch \r\n unter Windows, wenn du \n schreibst.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Danke Euch.

Ich öffne nun mit "a", flushe nach jedem write und die \n funktionieren super und mein "Log- file" sieht am Ende genau so aus wie es soll. :D
Antworten