Printing w/o newlines inside loops - odd behavior

J

Jeffrey E. Forcier

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
 
E

Erik Max Francis

Jeffrey said:
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.

sys.stdout is line buffered. Put an intervening sys.stdout.flush() in
between your prints.
 
J

Jeffrey E. Forcier

Erik: Thanks, that was it! Figured it was something along those lines,
but like I said, I didn't know specifically what was going on or what
to look for.

Larry: That recipe could be useful, thanks a lot :)

And thanks for the quick replies, too, you guys are awesome.

Regards,
Jeff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,534
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top