2

I'm trying to display a sort of loading animation, specifically three dots appearing over and over. I thought the below would work:

import time, sys

for i in range(9):
    time.sleep(0.2)
    x = i % 4
    sys.stdout.write("." * x)
    sys.stdout.flush()

However all it does is just gradually (and non-uniformly) load this: "........."

Bhargav Rao
  • 50,140
  • 28
  • 121
  • 140
Joey
  • 23
  • 4

1 Answers1

0

Use \r the return character. This is because your cursor should return to the original position after you lapse the time

import time, sys

for i in range(15):
    sys.stdout.write("   ")
    x = i % 4
    sys.stdout.write('\r' + "." * x )
    time.sleep(0.5)
    sys.stdout.flush()
Bhargav Rao
  • 50,140
  • 28
  • 121
  • 140