2017-02-02 4 views
0

So versuche ich sys.stdout.write() zu verwenden, um die aktuelle Zeile neu zu schreiben und es mit anderem Text zu ersetzen. Aber ich möchte, dass dies für mehrere Zeilen der Ausgabe geschieht.Aktualisierung mehrerer Ausgangsleitungen

# I am looking at having 2 lines with changing values in them that will keep over writing themselves without moving any further down. 
    import sys 
    for i in range(10): 
     sys.stdout.write("\r" + "Hello" + str(i) + "\n + "Hello" + str(i) * 2) 
     sys.stdout.flush() 

Ich versuchte dies, aber jedes Mal, wenn es die \ n trifft, wird es unbestimmt die Anzahl der Zeilen erhöhen, ohne alles zu löschen.

+0

(Mach dir keine Sorgen über die Markierung Ihrer Post als "nicht dringend" - nichts ist hier dringend, also habe ich es getrimmt). – halfer

Antwort

2

stdout \ stderr funktionieren nicht so. Sie können Steuerzeichen an Ihr Terminal senden, um Zeichen zu löschen, aber sobald eine Zeile gesendet wurde, ist sie im Grunde fest.

Was Sie tatsächlich brauchen, ist ncurses, die Ihnen viel mehr Kontrolle über die Anzeige und die Cursorposition beim Schreiben auf ein Terminal gibt.

Verwandte Themen