mehrzeilige Statusausgabe im Terminal

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
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Moin Moin,

wenn ich auf dem Terminal eine Statusausgabe machen will, kann ich das ja in etwa so machen:

Code: Alles auswählen

import time, sys

m = 'Do something .......... '
for i in xrange(50):
	sys.stdout.write(m+['|', '/', '-', '\\'][i%4]+'\r')
	sys.stdout.flush()
	time.sleep(0.2)
print m + "OK"
Kann man so etwas auch mehrzeilig machen? Mehrere Zeilen, die ich verändern kann? Ich bräuchte ja quasi ein Steuerzeichen für "Zeile hoch", gibt es das? Oder gibt es eine andere Möglichkeit, das zu Lösen?

Gruß,
r.
BlackJack

Wenn die Lösung wirklich für Terminals bzw. Terminal-Emulatoren ist, könntest Du ANSI-Escape-Sequenzen verwenden. Zum Beispel '\x1b[A' um den Cursor um eine Zeile nach oben zu bewegen, oder '\x1b[%d;%dH' % (column, row) um zu einer bestimmten Position zu springen.
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Jap, das ist genau das, wonach es mir bedurfte.

Herzlichen Dank!
Antworten