I'm having trouble implementing a simple countdown in python using a carriage return. I have two versions, each with problems.
Print Version:
for i in range(10):
print "\rCountdown: %d" % i
time.sleep(1)
Problem: The \r
doesn't do anything because a newline is printed at the end, so it gives the output:
Countdown: 0
Countdown: 1
Countdown: 2
Countdown: 3
Countdown: 4
Countdown: 5
Countdown: 6
Countdown: 7
Countdown: 8
Countdown: 9
Sys.stdout.write Version:
for i in range(10):
sys.stdout.write("\rCountdown: %d" % i)
time.sleep(1)
print "\n"
Problem: All the sleep happens at the beginning, and after 10 seconds of sleep it just prints Countdown: 9
to the screen. I can see the \r
is working behind the scenes, but how do I get the prints to be interspersed in the sleep?