Terminal – ¿Cómo sobrescribir muchas líneas?

Quiero sobrescribir el hello . Pero cuando se imprimió un \n no puedo volver a esa línea. Entonces, ¿qué hacen las aplicaciones que sobrescriben muchas líneas como el progtwig htop?

 import sys print 'hello' print 'huhu', print '\r\r\rnooooo\r' 

El módulo de terceros de colotwig tiene soporte para cambiar la posición del cursor, a través de la cadena de comando “\ x1b [?:? H”. También puede borrar la pantalla de esta manera.

 import colotwig colotwig.init() def put_cursor(x,y): print "\x1b[{};{}H".format(y+1,x+1) def clear(): print "\x1b[2J" clear() put_cursor(0,0) print "hello" print "huhu" #return to first line put_cursor(0,0) print "noooooo" 

El módulo parece hacer esto importando ctypes e invocando windll.kernel32.SetConsoleCursorPosition . Ver win32.py, línea 58 .

Para usuarios de Linux y macOS:

 import time import curses stdscr = curses.initscr() stdscr.addstr(0, 0, "Hello") stdscr.refresh() time.sleep(5) # deliberate wait, else will automatically delete output stdscr.addstr(0, 0, "huhu") stdscr.refresh() 

Ver otra respuesta para usuarios de Windows.

Imprimir agrega una nueva línea. Para esto es mejor escribir directamente a la salida estándar.

  sys.stdout.write("mystring\r")