Printing w/o newlines inside loops - odd behavior
larry.bates at websafe.com
Wed Sep 14 00:02:35 CEST 2005
Take a look at this recipe which is part of the latest
Python Cookbook. I think it will help you.
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):
> 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?
More information about the Python-list