Konsolenausgabe verschwindet

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
LiLaLaunebär
User
Beiträge: 55
Registriert: Sonntag 11. April 2010, 14:41

Hi,

wenn ich in Python meinen Quellcode ablaufen lasse, dann gebe ich so einiges mit dem "print" Befehl auf die Konsole aus. Nun habe ich aber das Problem, dass manchmal die ersten Einträge verschwinden (also nicht weil es zu viele sind). ich gebe 50-60 Zeilen aus, sehe auch zur Laufzeit wie sie vorbeirauschen, aber am Ende steht nur eine Zeile da und ich kann nicht nach oben scrollen...jmd ne Idee woran das liegen könnte? den Code kann ich leider nicht posten, würde auch keinen Sinn machen da viel zu lang. Das logging Modul kenne ich übrigens schon.

Danke für Tipps
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

jmd ne Idee woran das liegen könnte?
Das liegt an deiner Shell/Kommandozeile und hat mit Python nichts zu tun. Meine Shells speichern "unbegrenzt" viele Zeilen. Das ist auf dem Mac. Aber falls du Windows benutzt, kannst du die Anzahl der Zeilen, die aufgehoben werden sollen, garantiert auch in ein Einstellungen setzen.

Stefan
LiLaLaunebär
User
Beiträge: 55
Registriert: Sonntag 11. April 2010, 14:41

hallo stefan, denke für den tipp, aber ich denke nicht, dass es das ist.
die konsole speichert schon einge zeilen, sicher mehr als 500. das Problem tritt aber auch auf, wenn ich weniger zeilen ausgebe. ich kann den Fehler aber leider nicht beliebig reproduzieren...dachte vllt hatte jmd schon mal sowas...
rads
User
Beiträge: 153
Registriert: Freitag 26. März 2010, 15:51

Ich behaupte mal es muss an der Konsole liegen.
Von welcher System.out sprechen wir? Alternativ kannst du es ja mal mit einer anderweitgen Konsole (z.b. die aus Eclipse) versuchen.

An sich ist es auch nicht möglich bereits geschriebene Zeilen in der Console zu ändern, bzw. ist es nicht trivial.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Sind in deiner Ausgabe vlt. ab und zu irgendwelche Steuerzeichen, mit dem dein Terminal-Emulator/deine Termcap nicht klarkommt?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
LiLaLaunebär
User
Beiträge: 55
Registriert: Sonntag 11. April 2010, 14:41

also ich arbeite mit Eclipse/PyDev auf Windows XP, da das auch die Zielumgebung für mein Tool ist (damit wird hier halt gearbeitet)...wenn es denn jemals fertig werden.
Hm, das mit den Steuerzeichen...was für Zeichen fallen da so rein?...denke aber nicht, dass ich sowas verwende.
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

Hmm, z.B. "\r" (Carriage Return).

Code: Alles auswählen

>>> import sys
>>> sys.stdout.write("Ich werde überschrieben\rIch wurde überschrieben")
Ich wurde überschrieben>>>
Das erklärt allerdings noch nicht, wieso vorhergehende Zeilen verschwinden.
Ruft Dein Programm eventuell Shell-Befehle wie "cls" o.ä. auf, z.B. per subprocess.call (mit shell=True) oder os.system? Alternativ leite die Ausgabe doch mal in eine Datei um, vielleicht ergibt sich daraus ja ein Hinweis?
LiLaLaunebär
User
Beiträge: 55
Registriert: Sonntag 11. April 2010, 14:41

hm, nein, das mach ich alles nicht...logging funktioniert...naja, momentan ist der fehler wieder verschwunden, hoffen wir, dass es so bleibt...
aber danke für eure mühen
Antworten