4

I am trying to this function:

def sleep(sec):
    for i in range(sec):
        print(".", end=" ");
        time.sleep(1);

the problem is that it waits for the for loop to finish then it prints everything. If I use the normal print with \n in the end everything works as it should. But with the end=" " it does not.

hidayat
  • 9,493
  • 13
  • 51
  • 66

1 Answers1

5

The stdout is line buffered. You need to flush the output manually.

import sys

def sleep(sec):
    for i in range(sec):
        print(".", end=" ")
        sys.stdout.flush()
        time.sleep(1)
Community
  • 1
  • 1
kennytm
  • 510,854
  • 105
  • 1,084
  • 1,005