Seite 1 von 1

mehrzeilige Statusausgabe im Terminal

Verfasst: Donnerstag 6. November 2008, 17:04
von .robert
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.

Verfasst: Donnerstag 6. November 2008, 17:55
von 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.

Verfasst: Donnerstag 6. November 2008, 18:12
von .robert
Jap, das ist genau das, wonach es mir bedurfte.

Herzlichen Dank!