]> granicus.if.org Git - python/commitdiff
Issue 22492: Be explicit that print does not support binary mode files.
authorTerry Jan Reedy <tjreedy@udel.edu>
Wed, 1 Oct 2014 19:37:42 +0000 (15:37 -0400)
committerTerry Jan Reedy <tjreedy@udel.edu>
Wed, 1 Oct 2014 19:37:42 +0000 (15:37 -0400)
Original patch by Georg Brandl.

Doc/library/functions.rst

index 2a89ce451e2a460d58adfb78fb69fb7f066e74ac..f7ae3834f3c6c9ba3e13025e618946ea08e636c7 100644 (file)
@@ -1083,8 +1083,8 @@ are always available.  They are listed here in alphabetical order.
 
 .. function:: print(*objects, sep=' ', end='\\n', file=sys.stdout, flush=False)
 
-   Print *objects* to the stream *file*, separated by *sep* and followed by
-   *end*.  *sep*, *end* and *file*, if present, must be given as keyword
+   Print *objects* to the text stream *file*, separated by *sep* and followed
+   by *end*.  *sep*, *end* and *file*, if present, must be given as keyword
    arguments.
 
    All non-keyword arguments are converted to strings like :func:`str` does and
@@ -1094,9 +1094,12 @@ are always available.  They are listed here in alphabetical order.
    *end*.
 
    The *file* argument must be an object with a ``write(string)`` method; if it
-   is not present or ``None``, :data:`sys.stdout` will be used.  Whether output
-   is buffered is usually determined by *file*, but if the  *flush* keyword
-   argument is true, the stream is forcibly flushed.
+   is not present or ``None``, :data:`sys.stdout` will be used.  Since printed
+   arguments are converted to text strings, :func:`print` cannot be used with
+   binary mode file objects.  For these, use ``file.write(...)`` instead.
+
+   Whether output is buffered is usually determined by *file*, but if the
+   *flush* keyword argument is true, the stream is forcibly flushed.
 
    .. versionchanged:: 3.3
       Added the *flush* keyword argument.