Printing w/o newlines inside loops - odd behavior
Larry Bates
larry.bates at websafe.com
Tue Sep 13 18:02:35 EDT 2005
Take a look at this recipe which is part of the latest
Python Cookbook. I think it will help you.
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/299207
Larry Bates
Jeffrey E. Forcier wrote:
> This is a difficult issue to search for, and Googling (and reviewing
> the pertinent Python docs) has not found me anything useful. It's also
> not a super important issue, but regardless of whether it's avoidable,
> I still want to know what the heck is going on.
>
> Doing multiple print statements inside a for loop, using the 'comma at
> the end eats the newline' variant, results in zero output until the
> loop completes its entire iteration.
>
> def test():
> print "testing:",
> for x in range(10):
> time.sleep(1)
> print ".",
> print "done."
>
> Executing test() results in the behavior described above. If one
> removes the commas after the first two print statements, it behaves
> normally, with "testing" showing up right away, then a period on each
> newline every second until the end.
>
> I've tried various things--os.system('sleep 1') instead of
> time.sleep(1), sys.stdout.write() instead of print-with-a-comma, and
> other equally silly tactics, to no avail.
>
> What's going on here?
>
> Thanks,
> Jeff
>
More information about the Python-list
mailing list