[Python-Dev] Can't have unbuffered text I/O in Python 3.0?

Guido van Rossum guido at python.org
Sat Dec 20 00:03:10 CET 2008

Fror truly unbuffered text output you'd have to make changes to the
io.TextIOWrapper class to flush after each write() call. That's an API
change -- the constructor currently has a line_buffering option but no
option for completely unbuffered mode. It would also require some
changes to io.open() which currently rejects buffering=0 in text mode.
All that suggests that it should wait until 3.1.

However it might make sense to at least turn on line buffering when -u
or PYTHONUNBUFFERED is given; that doesn't require API changes and so
can be considered a bug fix.

--Guido van Rossum (home page: http://www.python.org/~guido/)

On Fri, Dec 19, 2008 at 2:47 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
>> Well, ``python -h`` still lists it.
> Precisely, it says:
> -u     : unbuffered binary stdout and stderr; also PYTHONUNBUFFERED=x
>         see man page for details on internal buffering relating to '-u'
> Note the "binary". And indeed:
> ./python -u
> Python 3.1a0 (py3k:67839M, Dec 18 2008, 17:56:54)
> [GCC 4.3.2] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import sys
>>>> sys.stdout.buffer.write(b"y")
> y1
> I don't know what it would take to enable unbuffered text IO while keeping the
> current TextIOWrapper implementation...
> Regards
> Antoine.
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org

More information about the Python-Dev mailing list