python `print` does not work in loop -


i have multi loops in , sleep in inner loop. example:

from time import sleep  in range(10):     print i,     j in range(-5,5):         if j > 0:             print '.',         else:             print 'd',         sleep(1)     print '' 

if run code, may expected i value after d sleep 1 second , d , again sleep until end.

but result difference, waits 10 seconds , prints whole line of 0 d d d d d d . . . . , waiting again printing next line.

i found comma @ end of printing causes problem. how can solve it?

because of existence of comma, output buffers until \n.

you should flush stdout after every print or use sys.stdout.write , flush buffer.

define print method:

import sys  def my_print(text):     sys.stdout.write(str(text))     sys.stdout.flush() 

and @ end of line print \n


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -