una separar salto print por palabra misma linea letras leer imprimir funcion caracter cadena python

separar - salto de linea en python



Cómo restablecer el cursor al principio de la misma línea en Python (4)

La mayoría de las preguntas relacionadas con estos temas aquí en SO son las siguientes:

Cómo imprimir cierta información en la misma línea sin introducir una nueva línea

Q1 Q2 .

En cambio, mi pregunta es la siguiente:

Espero ver el siguiente efecto,

>> You have finished 10%

Donde los 10 siguen aumentando en el mismo tiempo. Sé cómo hacer esto en C ++ pero no puedo encontrar una buena solución en python.


Python 3

Puede utilizar argumentos de palabras clave para print :

print(''string'', end=''/r'', flush=True)

  • end=''/r'' reemplaza el comportamiento predeterminado de fin de línea con ''/r''
  • flush=True descarga el búfer, lo que hace que el texto impreso aparezca inmediatamente.

Python 2

En la versión 2.6+, puede utilizar from __future__ import print_function al inicio del script para habilitar el comportamiento de Python 3. O usa la forma antigua:

La print de Python coloca una nueva línea después de cada comando, a menos que lo suprima con una coma al final. Entonces, el comando de impresión es:

print ''You have finished {0}%/r''.format(percentage),

Tenga en cuenta la coma al final.

Desafortunadamente, Python solo envía la salida al terminal después de una línea completa. Lo anterior no es una línea completa, por lo que debe flush manualmente:

import sys sys.stdout.flush()


En Linux (y probablemente en Windows) puede usar el módulo de curses como este

import time import curses win = curses.initscr() for i in range(100): win.clear() win.addstr("You have finished %d%%"%i) win.refresh() time.sleep(.1) curses.endwin()

Benfit con curses como se adjunta a otra técnica más simple es que puede dibujar en el terminal como un programa de gráficos, porque los curses permiten moverse a cualquier posición x, y, por ejemplo, a continuación hay un script simple que actualiza cuatro vistas.

import time import curses curses.initscr() rows = 10 cols= 30 winlist = [] for r in range(2): for c in range(2): win = curses.newwin(rows, cols, r*rows, c*cols) win.clear() win.border() winlist.append(win) for i in range(100): for win in winlist: win.addstr(5,5,"You have finished - %d%%"%i) win.refresh() time.sleep(.05) curses.endwin()


el uso de sys.stdout.write() lugar de trabajos de impresión en python 2 y 3 sin ningún compromiso.


import sys, time for i in xrange(0, 101, 10): print ''/r>> You have finished %d%%'' % i, sys.stdout.flush() time.sleep(2) print

El /r es el retorno de carro. Necesita la coma al final de la declaración de print para evitar la nueva línea automática. Finalmente, se necesita sys.stdout.flush() para vaciar el búfer a la salida estándar.