8000 Reformat the open function text so it fits within 80 columns in prepa… · python/cpython@1c63960 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1c63960

Browse files
author
Skip Montanaro
committed
Reformat the open function text so it fits within 80 columns in preparation
for a bit of rewriting. Separating the reformatting from the rewriting should make it easier for people to review the substantive changes.
1 parent f1368ef commit 1c63960

File tree

1 file changed

+41
-37
lines changed

1 file changed

+41
-37
lines changed

Doc/library/functions.rst

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -701,50 +701,54 @@ available. They are listed here in alphabetical order.
701701
:func:`open` instead of invoking the :class:`file` constructor directly.
702702

703703
The first two arguments are the same as for ``stdio``'s :cfunc:`fopen`:
704-
*filename* is the file name to be opened, and *mode* is a string indicating how
705-
the file is to be opened.
706-
707-
The most commonly-used values of *mode* are ``'r'`` for reading, ``'w'`` for
708-
writing (truncating the file if it already exists), and ``'a'`` for appending
709-
(which on *some* Unix systems means that *all* writes append to the end of the
710-
file regardless of the current seek position). If *mode* is omitted, it
711-
defaults to ``'r'``. When opening a binary file, you should append ``'b'`` to
712-
the *mode* value to open the file in binary mode, which will improve
713-
portability. (Appending ``'b'`` is useful even on systems that don't treat
714-
binary and text files differently, where it serves as documentation.) See below
715-
for more possible values of *mode*.
704+
*filename* is the file name to be opened, and *mode* is a string
705+
indicating how the file is to be opened.
706+
707+
The most commonly-used values of *mode* are ``'r'`` for reading, ``'w'``
708+
for writing (truncating the file if it already exists), and ``'a'`` for
709+
appending (which on *some* Unix systems means that *all* writes append to
710+
the end of the file regardless of the current seek position). If *mode*
711+
is omitted, it defaults to ``'r'``.
712+
713+
When opening a binary file, you should append ``'b'`` to the *mode* value
714+
to open the file in binary mode, which will improve portability.
715+
(Appending ``'b'`` is useful even on systems that don't treat binary and
716+
text files differently, where it serves as documentation.) See below for
717+
more possible values of *mode*.
716718

717719
.. index::
718720
single: line-buffered I/O
719721
single: unbuffered I/O
720722
single: buffer size, I/O
721723
single: I/O control; buffering
722724

723-
The optional *bufsize* argument specifies the file's desired buffer size: 0
724-
means unbuffered, 1 means line buffered, any other positive value means use a
725-
buffer of (approximately) that size. A negative *bufsize* means to use the
726-
system default, which is usually line buffered for tty devices and fully
727-
buffered for other files. If omitted, the system default is used. [#]_
728-
729-
Modes ``'r+'``, ``'w+'`` and ``'a+'`` open the file for updating (note that
730-
``'w+'`` truncates the file). Append ``'b'`` to the mode to open the file in
731-
binary mode, on systems that differentiate between binary and text files; on
732-
systems that don't have this distinction, adding the ``'b'`` has no effect.
733-
734-
In addition to the standard :cfunc:`fopen` values *mode* may be ``'U'`` or
735-
``'rU'``. Python is usually built with universal newline support; supplying
736-
``'U'`` opens the file as a text file, but lines may be terminated by any of the
737-
following: the Unix end-of-line convention ``'\n'``, the Macintosh convention
738-
``'\r'``, or the Windows convention ``'\r\n'``. All of these external
739-
representations are seen as ``'\n'`` by the Python program. If Python is built
740-
without universal newline support a *mode* with ``'U'`` is the same as normal
741-
text mode. Note that file objects so opened also have an attribute called
742-
:attr:`newlines` which has a value of ``None`` (if no newlines have yet been
743-
seen), ``'\n'``, ``'\r'``, ``'\r\n'``, or a tuple containing all the newline
744-
types seen.
745-
746-
Python enforces that the mode, after stripping ``'U'``, begins with ``'r'``,
747-
``'w'`` or ``'a'``.
725+
The optional *bufsize* argument specifies the file's desired buffer size:
726+
0 means unbuffered, 1 means line buffered, any other positive value means
727+
use a buffer of (approximately) that size. A negative *bufsize* means to
728+
use the system default, which is usually line buffered for tty devices
729+
and fully buffered for other files. If omitted, the system default is
730+
used. [#]_
731+
732+
Modes ``'r+'``, ``'w+'`` and ``'a+'`` open the file for updating (note
733+
that ``'w+'`` truncates the file). Append ``'b'`` to the mode to open
734+
the file in binary mode, on systems that differentiate between binary and
735+
text files; on systems that don't have this distinction, adding the
736+
``'b'`` has no effect.
737+
738+
In addition to the standard :cfunc:`fopen` values *mode* may be ``'U'``
739+
or ``'rU'``. Python is usually built with universal newline support;
740+
supplying ``'U'`` opens the file as a text file, but lines may be
741+
terminated by any of the following: the Unix end-of-line convention
742+
``'\n'``, the Macintosh convention ``'\r'``, or the Windows convention
743+
``'\r\n'``. All of these external representations are seen as ``'\n'`` by
744+
the Python program. If Python is built without universal newline support
745+
a *mode* with ``'U'`` is the same as normal text mode. Note that file
746+
objects so opened also have an attribute called :attr:`newlines` which
747+
has a value of ``None`` (if no newlines have yet been seen), ``'\n'``,
748+
``'\r'``, ``'\r\n'``, or a tuple containing all the newline types seen.
749+
750+
Python enforces that the mode, after stripping ``'U'``, begins with
751+
``'r'``, ``'w'`` or ``'a'``.
748752

749753
See also the :mod:`fileinput` module, the :mod:`os` module, and the
750754
:mod:`os.path` module.

0 commit comments

Comments
 (0)
0