2012-04-22 14 views
5

En la consola puede imprimir "\b" para borrar el carácter a la izquierda del cursor (retroceso) como estoMover un carácter a la izquierda en la consola

print "the last char is going to be erased\b" # the last char is going to be erased 

Como sólo se mueven una posición hacia la izquierda en lugar de borrando (flecha izquierda)?

Respuesta

9

Depende del tipo de terminal y la conexión, pero por lo general puede asumir el movimiento del cursor ANSI, así cursor de izquierda es ESC + '[' + 'D':

print "The cursor should be here:> <\e[D\e[D" 
readline 

Ver http://ascii-table.com/ansi-escape-sequences.php para más información.

+1

Marca, me aparece "El cursor debería estar aquí:><← [D ← [D" en una consola estándar de Windows 7, las secuencias de escape claramente no se interpretan, pero \ b es aunque debe seguirse con otro carácter . ej. 'imprimir' El cursor debería estar aquí:> \ b "'da" El cursor debería estar aquí: " – peter

+1

Windows no interpreta escapes ANSI. No creo que pueda desarrollar en una máquina con Windows; Me siento como si estuviera constantemente saltando a través de aros. – d11wtq

+0

@Mark: tiene desafíos, pero sus clientes necesitan poder ejecutar su código y dado que la mayoría de los clientes tienen Windows, es la manera más fácil. Acerca de las cosas ansi, hay gemas que deberían hacer esto posible, pero soy reacio a usarlas para un trabajo tan simple. Después de todo, si \ b funciona (obviamente no ansi), ¿por qué no debería haber algo así para mover el cursor? – peter

Cuestiones relacionadas