: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)
- Open *file* and return a corresponding stream. If the file cannot be opened,
- an :exc:`IOError` is raised.
+ Open *file* and return a corresponding :term:`file object`. If the file
+ cannot be opened, an :exc:`IOError` 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
closed. If a filename is given *closefd* has no effect and must be ``True``
(the default).
- 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
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