From: Benjamin Peterson Date: Sun, 14 Jun 2009 18:41:18 +0000 (+0000) Subject: rewrite binary std streams part; note that detach()/buffer will not always work X-Git-Tag: v3.1~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=995bb47c1729bb7e62649c5697f5e148e0ec591f;p=thirdparty%2FPython%2Fcpython.git rewrite binary std streams part; note that detach()/buffer will not always work --- diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 1278a7cf5fb9..ba22dc3c3b0f 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -784,13 +784,18 @@ always available. The standard streams are in text mode by default. To write or read binary data to these, use the underlying binary buffer. For example, to write bytes to :data:`stdout`, use ``sys.stdout.buffer.write(b'abc')``. Using - :meth:`io.TextIOBase.detach` streams can be made binary by default. For - example, this function sets all the standard streams to binary:: + :meth:`io.TextIOBase.detach` streams can be made binary by default. This + function sets :data:`stdin` and :data:`stdout` to binary:: def make_streams_binary(): sys.stdin = sys.stdin.detach() sys.stdout = sys.stdout.detach() - sys.stderr = sys.stderr.detach() + + Note that the streams can be replaced with objects (like + :class:`io.StringIO`) that do not support the + :attr:`~io.BufferedIOBase.buffer` attribute or the + :meth:`~io.BufferedIOBase.detach` method and can raise :exc:`AttributeError` + or :exc:`io.UnsupportedOperation`. .. data:: __stdin__