Reputation: 5389
I want to print out i
in my iteration on Jupyter notebook and flush it out. After the next iteration, I'll print the next i
. I tried solutions from this question and this question, however, it just print out 0123...9
without flushing the output for me. Here is my working code:
import sys
import time
for i in range(10):
sys.stdout.write(str(i)) # or print(i, flush=True) ?
time.sleep(0.5)
sys.stdout.flush()
these are my setup: ipython 5.1, python 3.6. Maybe, I missed something in the previous solution?
Upvotes: 13
Views: 20482
Reputation: 4602
The first answer is correct but you don't need sys
package. You can use the end
parameter of the print
function. It specifies what to print at the end, and its default value is \n
(newline) (docs1, docs2). Use \r
(carriage return) instead.
import time
for i in range (10):
print(i, end="\r")
time.sleep(0.5) # This line is to see if it's working or not
Upvotes: 10
Reputation: 12684
#Try this:
import sys
import time
for i in range (10):
sys.stdout.write('\r'+str(i))
time.sleep(0.5)
Upvotes: 15