print problem

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Tue Jun 17 03:46:38 EDT 2008


En Tue, 17 Jun 2008 04:10:41 -0300, Rich Healey <healey.rich at gmail.com> escribió:
> Gabriel Genellina wrote:
>> En Tue, 17 Jun 2008 03:15:11 -0300, pirata <pirata at mars.invalid> escribió:
>>
>>> I was trying to print a dot on console every second to indicates
>>> running process, so I wrote, for example:
>>>
>>> for i in xrange(10):
>>>     print ".",
>>>     time.sleep(1)
>>>
>>> Idealy, a dot will be printed out each second. But there is nothing
>>> print out until after 10 seconds, all 10 dots come out together.
>>>
>>> I've tried lose the comma in the print statement, and it works.
>>>
>>> Is that because of the print statement buffer the characters until
>>> there is a new line character?
>>
>> Very probably, altough I can't reproduce it on Windows. Try invoking the script with python -u (unbuffered input/output):
>>
>> python -u your_script.py
>>
> Or just write to sys.stdout without the print wrapper..

I think the output is still buffered, even if you write directly to sys.stdout, but I don't have a Linux box to test right now.

-- 
Gabriel Genellina




More information about the Python-list mailing list