Ronald Oussoren committed ae8b054 Merge

(3.3->default) Issue #17860: explicitly mention that std* streams are opened in binary mode by default.

The documentation does mention that the streams are opened in text mode
when univeral_newlines is true, but not that that they are opened in
binary mode when that argument is false and that seems to confuse at
least some users.

  • Participants
  • Parent commits 6d278f4, a2c2ffa

Comments (0)

Files changed (1)


    If *universal_newlines* is ``True``, the file objects *stdin*, *stdout* and
    *stderr* will be opened as text streams in :term:`universal newlines` mode
    using the encoding returned by :func:`locale.getpreferredencoding(False)
-   <locale.getpreferredencoding>`.  For *stdin*, line ending characters
+   <locale.getpreferredencoding>`, otherwise these streams will be opened
+   as binary streams.  For *stdin*, line ending characters
    ``'\n'`` in the input will be converted to the default line separator
    :data:`os.linesep`.  For *stdout* and *stderr*, all line endings in the
    output will be converted to ``'\n'``.  For more information see the
    If *universal_newlines* is ``True``, the file objects *stdin*, *stdout*
    and *stderr* are opened as text streams in universal newlines mode, as
-   described above in :ref:`frequently-used-arguments`.
+   described above in :ref:`frequently-used-arguments`, otherwise they are
+   opened as binary streams.
    If given, *startupinfo* will be a :class:`STARTUPINFO` object, which is
    passed to the underlying ``CreateProcess`` function.