Estoy haciendo una barra de progreso para mi script de carga y por eso quiero imprimir una fila de múltiples '#' pero no puedo hacer que funcione. Cuando le digo a Python que no agregue nueva línea, la elimina pero no funciona como se esperaba en las funciones. El uso de "print ('#', end = '')" en Python 3 o "print '#'," en Python 2 lo elimina pero cuando se ejecuta bajo una función no imprime nada hasta que se termina toda la función, no debería esperar al igual que la impresión normal.Imprimir sin nueva línea en la función no funciona como debería en Python
import time
i = 0
def status():
print('#', end='')
while i < 60:
status()
time.sleep(1)
i += 1
Esto debería imprimir '#' cada segundo, pero no es así. Los imprime todos después de 60 segundos. El uso de solo imprimir ('#') lo imprime cada segundo como se esperaba. Realmente necesito una solución para esto. ¡Por favor ayuda!
Solución: "sys.stdout.flush()" después de cada impresión :)
¿Por qué intentas reinventar las ruedas? http://pypi.python.org/pypi/fish/ –
Utilizo una solución basada en [this] (http://nadiana.com/animated-terminal-progress-bar-in-python) que es muy buena, imo :) – simon
cosas geniales. Pero mi barra de progreso es en realidad un pene, así que mi solución mínima funciona mejor :) – ggustafsson