diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -786,11 +786,14 @@ expression. If *x* is not a Python :class:`int` object, it has to define an :meth:`__index__` method that returns an integer. + .. index:: + single: file object; open() built-in function + .. function:: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) - Open *file* and return a corresponding stream. If the file cannot be opened, - an :exc:`OSError` is raised. + Open *file* and return a corresponding :term:`file object`. If the file + cannot be opened, an :exc:`OSError` is raised. *file* is either a string or bytes object giving the pathname (absolute or relative to the current working directory) of the file to be opened or @@ -910,7 +913,8 @@ The *opener* parameter was added. The ``'x'`` mode was added. - The type of file object returned by the :func:`open` function depends on the + The type of :term:`file object` returned by the :func:`open` function + depends on the mode. When :func:`open` is used to open a file in a text mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When used diff --git a/Doc/library/io.rst b/Doc/library/io.rst --- a/Doc/library/io.rst +++ b/Doc/library/io.rst @@ -16,11 +16,15 @@ Overview -------- -The :mod:`io` module provides Python's main facilities for dealing for various -types of I/O. There are three main types of I/O: *text I/O*, *binary I/O*, *raw -I/O*. These are generic categories, and various backing stores can be used for -each of them. Concrete objects belonging to any of these categories will often -be called *streams*; another common term is *file-like objects*. +.. index:: + single: file object; io module + +The :mod:`io` module provides Python's main facilities for dealing with various +types of I/O. There are three main types of I/O: *text I/O*, *binary I/O* +and *raw I/O*. These are generic categories, and various backing stores can +be used for each of them. A concrete object belonging to any of these +categories is called a :term:`file object`. Other common terms are *stream* +and *file-like object*. Independently of its category, each concrete stream object will also have various capabilities: it can be read-only, write-only, or read-write. It can