Intenta entender el código bien antes de usarlo a tu trabajo y si ttienes algo que aportar puedes compartirlo con nosotros.
Solución:
import sys, time
for i in xrange(0, 101, 10):
print 'r>> You have finished %d%%' % i,
sys.stdout.flush()
time.sleep(2)
print
Él r
es el retorno de carro. Necesitas la coma al final del print
instrucción para evitar saltos de línea automáticos. Por fin sys.stdout.flush()
es necesario para vaciar el búfer a la salida estándar.
Para Python 3, puede usar:
print("r>> You have finished %".format(i), end='')
Pitón 3
Puede utilizar argumentos de palabras clave para print
:
print('string', end='r', flush=True)
end='r'
reemplaza el comportamiento predeterminado de final de línea con'r'
flush=True
vacía el búfer, haciendo que el texto impreso aparezca inmediatamente.
Pitón 2
En 2.6+ puedes usar from __future__ import print_function
al comienzo de la secuencia de comandos para habilitar el comportamiento de Python 3. O usa la forma antigua:
de pitón print
pone una nueva línea después de cada comando, a menos que lo suprima con una coma 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 a la 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) puedes usar un módulo 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()
El beneficio de curses en comparación con otras técnicas más simples es que puede dibujar en la terminal como un programa de gráficos, porque curses proporciona 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()
Sección de Reseñas y Valoraciones
Si guardas algún recelo o capacidad de perfeccionar nuestro post eres capaz de dejar un exégesis y con gusto lo analizaremos.