¿Por qué el contenido `print` no se muestra inmediatamente en el terminal?

Tengo una secuencia de comandos de Python para la simulación, se necesita bastante tiempo para ejecutar un bucle for y cada bucle toma un tiempo diferente para ejecutarse, así que imprimo un archivo . después de cada bucle como una forma de controlar la rapidez con la que se ejecuta y la distancia recorrida a través de la instrucción for medida que se ejecuta el script.

 for something: do something print '.', 

Sin embargo, cuando ejecuto el script en iPython en la terminal, los puntos no se imprimen uno por uno, en lugar de eso, los imprime todos a la vez cuando termina el bucle, lo que hace que todo sea inútil. ¿Cómo puedo imprimir los puntos en línea mientras se ejecuta?

¿Cómo puedo imprimir los puntos en línea mientras se ejecuta?

Intenta enjuagar tu salida, así:

 for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work