]> granicus.if.org Git - python/commitdiff
Merged revisions 84827-84829 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Wed, 15 Sep 2010 11:25:11 +0000 (11:25 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Wed, 15 Sep 2010 11:25:11 +0000 (11:25 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84827 | antoine.pitrou | 2010-09-15 11:58:26 +0200 (mer., 15 sept. 2010) | 3 lines

  Add a glossary entry for file objects.
........
  r84828 | antoine.pitrou | 2010-09-15 12:08:31 +0200 (mer., 15 sept. 2010) | 3 lines

  Update file-related information in the FAQ.
........
  r84829 | antoine.pitrou | 2010-09-15 13:11:28 +0200 (mer., 15 sept. 2010) | 3 lines

  Add cross-references to the glossary entry for file objects.
........

37 files changed:
Doc/faq/design.rst
Doc/faq/library.rst
Doc/glossary.rst
Doc/library/aifc.rst
Doc/library/array.rst
Doc/library/asyncore.rst
Doc/library/base64.rst
Doc/library/bz2.rst
Doc/library/configparser.rst
Doc/library/csv.rst
Doc/library/email.generator.rst
Doc/library/email.parser.rst
Doc/library/exceptions.rst
Doc/library/filesys.rst
Doc/library/formatter.rst
Doc/library/ftplib.rst
Doc/library/gettext.rst
Doc/library/gzip.rst
Doc/library/http.client.rst
Doc/library/imp.rst
Doc/library/mmap.rst
Doc/library/nntplib.rst
Doc/library/os.rst
Doc/library/pickle.rst
Doc/library/quopri.rst
Doc/library/select.rst
Doc/library/socket.rst
Doc/library/stdtypes.rst
Doc/library/subprocess.rst
Doc/library/sys.rst
Doc/library/tarfile.rst
Doc/library/tempfile.rst
Doc/library/termios.rst
Doc/library/weakref.rst
Doc/library/xml.etree.elementtree.rst
Doc/reference/datamodel.rst
Doc/tutorial/inputoutput.rst

index 87f87422feabc98a762e09bb734ea0fc093aba8d..c20de00b981617e5cc8598deecf3e7f487661983 100644 (file)
@@ -209,8 +209,8 @@ have to remember to change two places in your program -- the second occurrence
 is hidden at the bottom of the loop.
 
 The best approach is to use iterators, making it possible to loop through
-objects using the ``for`` statement.  For example, in the current version of
-Python file objects support the iterator protocol, so you can now write simply::
+objects using the ``for`` statement.  For example, :term:`file objects
+<file object>` support the iterator protocol, so you can write simply::
 
    for line in f:
        ... # do something with line...
index b409bb67fcca11eb4313977fcc95a0479720b8fa..c59b38f52874f8ae548aef8cb1b9948ff74c2dbf 100644 (file)
@@ -454,7 +454,7 @@ contents, use :func:`shutil.rmtree`.
 
 To rename a file, use ``os.rename(old_path, new_path)``.
 
-To truncate a file, open it using ``f = open(filename, "r+")``, and use
+To truncate a file, open it using ``f = open(filename, "rb+")``, and use
 ``f.truncate(offset)``; offset defaults to the current seek position.  There's
 also ```os.ftruncate(fd, offset)`` for files opened with :func:`os.open`, where
 ``fd`` is the file descriptor (a small integer).
@@ -483,9 +483,9 @@ in big-endian format from a file::
 
    import struct
 
-   f = open(filename, "rb")  # Open in binary mode for portability
-   s = f.read(8)
-   x, y, z = struct.unpack(">hhl", s)
+   with open(filename, "rb") as f:
+      s = f.read(8)
+      x, y, z = struct.unpack(">hhl", s)
 
 The '>' in the format string forces big-endian data; the letter 'h' reads one
 "short integer" (2 bytes), and 'l' reads one "long integer" (4 bytes) from the
@@ -494,6 +494,13 @@ string.
 For data that is more regular (e.g. a homogeneous list of ints or thefloats),
 you can also use the :mod:`array` module.
 
+   .. note::
+      To read and write binary data, it is mandatory to open the file in
+      binary mode (here, passing ``"rb"`` to :func:`open`).  If you use
+      ``"r"`` instead (the default), the file will be open in text mode
+      and ``f.read()`` will return :class:`str` objects rather than
+      :class:`bytes` objects.
+
 
 I can't seem to use os.read() on a pipe created with os.popen(); why?
 ---------------------------------------------------------------------
@@ -597,27 +604,29 @@ For Unix, see a Usenet post by Mitch Chapman:
 Why doesn't closing sys.stdout (stdin, stderr) really close it?
 ---------------------------------------------------------------
 
-Python file objects are a high-level layer of abstraction on top of C streams,
-which in turn are a medium-level layer of abstraction on top of (among other
-things) low-level C file descriptors.
+Python :term:`file objects <file object>` are a high-level layer of
+abstraction on low-level C file descriptors.
 
-For most file objects you create in Python via the builtin ``file`` constructor,
-``f.close()`` marks the Python file object as being closed from Python's point
-of view, and also arranges to close the underlying C stream.  This also happens
-automatically in f's destructor, when f becomes garbage.
+For most file objects you create in Python via the built-in :func:`open`
+function, ``f.close()`` marks the Python file object as being closed from
+Python's point of view, and also arranges to close the underlying C file
+descriptor.  This also happens automatically in ``f``'s destructor, when
+``f`` becomes garbage.
 
 But stdin, stdout and stderr are treated specially by Python, because of the
 special status also given to them by C.  Running ``sys.stdout.close()`` marks
 the Python-level file object as being closed, but does *not* close the
-associated C stream.
+associated C file descriptor.
+
+To close the underlying C file descriptor for one of these three, you should
+first be sure that's what you really want to do (e.g., you may confuse
+extension modules trying to do I/O).  If it is, use :func:`os.close`::
 
-To close the underlying C stream for one of these three, you should first be
-sure that's what you really want to do (e.g., you may confuse extension modules
-trying to do I/O).  If it is, use os.close::
+   os.close(stdin.fileno())
+   os.close(stdout.fileno())
+   os.close(stderr.fileno())
 
-    os.close(0)   # close C's stdin stream
-    os.close(1)   # close C's stdout stream
-    os.close(2)   # close C's stderr stream
+Or you can use the numeric constants 0, 1 and 2, respectively.
 
 
 Network/Internet Programming
index 40f0869e03f6f31ee67d9793aea795fe299cc052..5ecf848b5fc37586a94e423ea759931d6fb8e073 100644 (file)
@@ -178,6 +178,23 @@ Glossary
       A module written in C or C++, using Python's C API to interact with the core and
       with user code.
 
+   file object
+      An object exposing a file-oriented API (with methods such as
+      :meth:`read()` or :meth:`write()`) to an underlying resource.
+      Depending on the way it was created, a file object can mediate access
+      to a real on-disk file or to another other type of storage or
+      communication device (for example standard input/output, in-memory
+      buffers, sockets, pipes, etc.).  File objects are also called
+      :dfn:`file-like objects` or :dfn:`streams`.
+
+      There are actually three categories of file objects: raw binary
+      files, buffered binary files and text files.  Their interfaces are
+      defined in the :mod:`io` module.  The canonical way to create a
+      file object is by using the :func:`open` function.
+
+   file-like object
+      A synonym for :term:`file object`.
+
    finder
       An object that tries to find the :term:`loader` for a module. It must
       implement a method named :meth:`find_module`. See :pep:`302` for
index bdd3517bed8ed56b951e30848eed464216de329d..304437d9a209b174d674d5a49470569fae6d64e3 100644 (file)
@@ -40,10 +40,10 @@ Module :mod:`aifc` defines the following function:
 .. function:: open(file, mode=None)
 
    Open an AIFF or AIFF-C file and return an object instance with methods that are
-   described below.  The argument *file* is either a string naming a file or a file
-   object.  *mode* must be ``'r'`` or ``'rb'`` when the file must be opened for
-   reading, or ``'w'``  or ``'wb'`` when the file must be opened for writing.  If
-   omitted, ``file.mode`` is used if it exists, otherwise ``'rb'`` is used.  When
+   described below.  The argument *file* is either a string naming a file or a
+   :term:`file object`.  *mode* must be ``'r'`` or ``'rb'`` when the file must be
+   opened for reading, or ``'w'``  or ``'wb'`` when the file must be opened for writing.
+   If omitted, ``file.mode`` is used if it exists, otherwise ``'rb'`` is used.  When
    used for writing, the file object should be seekable, unless you know ahead of
    time how many samples you are going to write in total and use
    :meth:`writeframesraw` and :meth:`setnframes`.
index 2235f0894b48ab1a995397f753b8f9276e4a12ac..3f5f9e6c0afcd01cb41403e5b08bb5027ea929a8 100644 (file)
@@ -138,11 +138,11 @@ The following data items and methods are also supported:
 
 .. method:: array.fromfile(f, n)
 
-   Read *n* items (as machine values) from the file object *f* and append them to
-   the end of the array.  If less than *n* items are available, :exc:`EOFError` is
-   raised, but the items that were available are still inserted into the array.
-   *f* must be a real built-in file object; something else with a :meth:`read`
-   method won't do.
+   Read *n* items (as machine values) from the :term:`file object` *f* and append
+   them to the end of the array.  If less than *n* items are available,
+   :exc:`EOFError` is raised, but the items that were available are still
+   inserted into the array. *f* must be a real built-in file object; something
+   else with a :meth:`read` method won't do.
 
 
 .. method:: array.fromlist(list)
@@ -196,7 +196,7 @@ The following data items and methods are also supported:
 
 .. method:: array.tofile(f)
 
-   Write all items (as machine values) to the file object *f*.
+   Write all items (as machine values) to the :term:`file object` *f*.
 
 
 .. method:: array.tolist()
index 60d4d0336c078543fe97befab09bd745779858ee..8cdfe200bfe8663404e3e178a2e5774d08b2cba1 100644 (file)
@@ -224,9 +224,9 @@ any that have been added to the map during asynchronous service) is closed.
 
 .. class:: file_dispatcher()
 
-   A file_dispatcher takes a file descriptor or file object along with an
-   optional map argument and wraps it for use with the :cfunc:`poll` or
-   :cfunc:`loop` functions.  If provided a file object or anything with a
+   A file_dispatcher takes a file descriptor or :term:`file object` along
+   with an optional map argument and wraps it for use with the :cfunc:`poll`
+   or :cfunc:`loop` functions.  If provided a file object or anything with a
    :cfunc:`fileno` method, that method will be called and passed to the
    :class:`file_wrapper` constructor.  Availability: UNIX.
 
index 9ff065ab1be0a81b023112a6127284d13a7ef0e6..651f889f5b03bfaba581b7202bd2455d938c97a8 100644 (file)
@@ -122,9 +122,9 @@ The legacy interface:
 .. function:: decode(input, output)
 
    Decode the contents of the binary *input* file and write the resulting binary
-   data to the *output* file. *input* and *output* must either be file objects
-   or objects that mimic the file object interface working with bytes
-   objects. *input* will be read until ``input.read()`` returns an empty string.
+   data to the *output* file. *input* and *output* must be :term:`file objects
+   <file object>`. *input* will be read until ``input.read()`` returns an empty
+   bytes object.
 
 
 .. function:: decodebytes(s)
@@ -138,11 +138,10 @@ The legacy interface:
 .. function:: encode(input, output)
 
    Encode the contents of the binary *input* file and write the resulting base64
-   encoded data to the *output* file. *input* and *output* must either be file
-   objects or objects that mimic the file object interface working with bytes
-   objects. *input* will be read until ``input.read()`` returns an empty string.
-   :func:`encode` returns the encoded data plus a trailing newline character
-   (``b'\n'``).
+   encoded data to the *output* file. *input* and *output* must be :term:`file
+   objects <file object>`. *input* will be read until ``input.read()`` returns
+   an empty bytes object. :func:`encode` returns the encoded data plus a trailing
+   newline character (``b'\n'``).
 
 
 .. function:: encodebytes(s)
index 6f01dd3b8915704d863506d1613538a9fbf3a471..d9a2bad7567f857fb3e663d5d8e6a77462bc05e2 100644 (file)
@@ -25,8 +25,8 @@ Here is a summary of the features offered by the bz2 module:
 
 * :class:`BZ2File` class implements universal newline support;
 
-* :class:`BZ2File` class offers an optimized line iteration using the readahead
-  algorithm borrowed from file objects;
+* :class:`BZ2File` class offers an optimized line iteration using a readahead
+  algorithm;
 
 * Sequential (de)compression supported by :class:`BZ2Compressor` and
   :class:`BZ2Decompressor` classes;
index 5ddfcd7502b6e8c92661ab37b665e4f74e8e27c5..1afdf502afbd58da6cbcd4cfe70206240bc0eda0 100644 (file)
@@ -298,7 +298,7 @@ RawConfigParser Objects
 
 .. method:: RawConfigParser.write(fileobject)
 
-   Write a representation of the configuration to the specified file object,
+   Write a representation of the configuration to the specified :term:`file object`,
    which must be opened in text mode (accepting strings).  This representation
    can be parsed by a future :meth:`read` call.
 
index 510d35a4000f4e76d7a627444e2901422a0e057c..e75f00ac8dbad98fd2766d5fe3ed5fe1b9676fb3 100644 (file)
@@ -50,9 +50,9 @@ The :mod:`csv` module defines the following functions:
 
    Return a reader object which will iterate over lines in the given *csvfile*.
    *csvfile* can be any object which supports the :term:`iterator` protocol and returns a
-   string each time its :meth:`!next` method is called --- file objects and list
-   objects are both suitable.   If *csvfile* is a file object, it should be opened
-   with ``newline=''``. [#]_  An optional
+   string each time its :meth:`!next` method is called --- :term:`file objects
+   <file object>` and list objects are both suitable.   If *csvfile* is a file object,
+   it should be opened with ``newline=''``. [#]_  An optional
    *dialect* parameter can be given which is used to define a set of parameters
    specific to a particular CSV dialect.  It may be an instance of a subclass of
    the :class:`Dialect` class or one of the strings returned by the
index ba38f6851461655db59731e6a74f8e687ac959cb..930905aee066e58f593d25734c0e6f81ad980ee6 100644 (file)
@@ -28,9 +28,9 @@ Here are the public methods of the :class:`Generator` class, imported from the
 
 .. class:: Generator(outfp, mangle_from_=True, maxheaderlen=78)
 
-   The constructor for the :class:`Generator` class takes a file-like object called
-   *outfp* for an argument.  *outfp* must support the :meth:`write` method and be
-   usable as the output file for the :func:`print` function.
+   The constructor for the :class:`Generator` class takes a :term:`file-like object`
+   called *outfp* for an argument.  *outfp* must support the :meth:`write` method
+   and be usable as the output file for the :func:`print` function.
 
    Optional *mangle_from_* is a flag that, when ``True``, puts a ``>`` character in
    front of any line in the body that starts exactly as ``From``, i.e. ``From``
index 3de5c317e0349c763a5562c208ffdcc6a4cc0caa..32f4ff164bbf7c1de561349bd3843df0700b9492 100644 (file)
@@ -154,9 +154,9 @@ in the top-level :mod:`email` package namespace.
 
 .. function:: message_from_file(fp[, _class][, strict])
 
-   Return a message object structure tree from an open file object.  This is
-   exactly equivalent to ``Parser().parse(fp)``.  Optional *_class* and *strict*
-   are interpreted as with the :class:`Parser` class constructor.
+   Return a message object structure tree from an open :term:`file object`.
+   This is exactly equivalent to ``Parser().parse(fp)``.  Optional *_class*
+   and *strict* are interpreted as with the :class:`Parser` class constructor.
 
 Here's an example of how you might use this at an interactive Python prompt::
 
index fb3ae94d4125ff23d4d253a9308b455e60957452..ceebf5e2bb0bba8a08bac3e05e26f02ef6b925f1 100644 (file)
@@ -142,8 +142,8 @@ The following exceptions are the exceptions that are actually raised.
 .. exception:: IOError
 
    Raised when an I/O operation (such as the built-in :func:`print` or
-   :func:`open` functions or a method of a file object) fails for an I/O-related
-   reason, e.g., "file not found" or "disk full".
+   :func:`open` functions or a method of a :term:`file object`) fails for an
+   I/O-related reason, e.g., "file not found" or "disk full".
 
    This class is derived from :exc:`EnvironmentError`.  See the discussion above
    for more information on exception instance attributes.
index 31eaf0d870e0cf8ed053f8256ee6be9d8d8c528d..58998a8abff41662a706b21d1becc8e982717bae 100644 (file)
@@ -27,8 +27,8 @@ in this chapter is:
 .. seealso::
 
    Module :mod:`os`
-      Operating system interfaces, including functions to work with files at a lower
-      level than the built-in file object.
+      Operating system interfaces, including functions to work with files at a
+      lower level than Python :term:`file objects <file object>`.
 
    Module :mod:`io`
       Python's built-in I/O library, including both abstract classes and
index 0a459a60cbfe0edf5ff35277c66b05c657ff4ab5..88be11c3c5a563eab8b9d50347315636ce321d96 100644 (file)
@@ -339,8 +339,8 @@ this module.  Most applications will need to derive new writer classes from the
 
 .. class:: DumbWriter(file=None, maxcol=72)
 
-   Simple writer class which writes output on the file object passed in as *file*
-   or, if *file* is omitted, on standard output.  The output is simply word-wrapped
-   to the number of columns specified by *maxcol*.  This class is suitable for
-   reflowing a sequence of paragraphs.
+   Simple writer class which writes output on the :term:`file object` passed
+   in as *file* or, if *file* is omitted, on standard output.  The output is
+   simply word-wrapped to the number of columns specified by *maxcol*.  This
+   class is suitable for reflowing a sequence of paragraphs.
 
index c85e0b3e726df8a97453b9e738100aa18c95186f..75a8fb17db759a58392ed4b56137f112ba7f3eae 100644 (file)
@@ -194,19 +194,19 @@ followed by ``lines`` for the text version or ``binary`` for the binary version.
 .. method:: FTP.storbinary(cmd, file, blocksize=8192, callback=None)
 
    Store a file in binary transfer mode.  *cmd* should be an appropriate
-   ``STOR`` command: ``"STOR filename"``. *file* is an open file object which is
-   read until EOF using its :meth:`read` method in blocks of size *blocksize* to
-   provide the data to be stored.  The *blocksize* argument defaults to 8192.
-   *callback* is an optional single parameter callable that is called
-   on each block of data after it is sent.
+   ``STOR`` command: ``"STOR filename"``. *file* is an open :term:`file object`
+   which is read until EOF using its :meth:`read` method in blocks of size
+   *blocksize* to provide the data to be stored.  The *blocksize* argument
+   defaults to 8192.  *callback* is an optional single parameter callable that
+   is called on each block of data after it is sent.
 
 
 .. method:: FTP.storlines(cmd, file, callback=None)
 
    Store a file in ASCII transfer mode.  *cmd* should be an appropriate
    ``STOR`` command (see :meth:`storbinary`).  Lines are read until EOF from the
-   open file object *file* using its :meth:`readline` method to provide the data to
-   be stored.  *callback* is an optional single parameter callable
+   open :term:`file object` *file* using its :meth:`readline` method to provide
+   the data to be stored.  *callback* is an optional single parameter callable
    that is called on each line after it is sent.
 
 
index eba59c86d65d15719602a5d6979e9071bbad54e3..9e1528ba622892d72919f151e874dd5f15fb3543 100644 (file)
@@ -173,8 +173,8 @@ class can also install themselves in the built-in namespace as the function
    associated :file:`.mo` file paths.  Instances with identical :file:`.mo` file
    names are cached.  The actual class instantiated is either *class_* if
    provided, otherwise :class:`GNUTranslations`.  The class's constructor must
-   take a single file object argument.  If provided, *codeset* will change the
-   charset used to encode translated strings in the :meth:`lgettext` and
+   take a single :term:`file object` argument.  If provided, *codeset* will change
+   the charset used to encode translated strings in the :meth:`lgettext` and
    :meth:`lngettext` methods.
 
    If multiple files are found, later files are used as fallbacks for earlier ones.
@@ -219,7 +219,7 @@ are the methods of :class:`NullTranslations`:
 
 .. class:: NullTranslations(fp=None)
 
-   Takes an optional file object *fp*, which is ignored by the base class.
+   Takes an optional :term:`file object` *fp*, which is ignored by the base class.
    Initializes "protected" instance variables *_info* and *_charset* which are set
    by derived classes, as well as *_fallback*, which is set through
    :meth:`add_fallback`.  It then calls ``self._parse(fp)`` if *fp* is not
index 894a423a1dd4fd5ecf6a9edcdb2b2e2d719c7097..fdd859049c33a9209e23e56f84dd9c25b8dd6929 100644 (file)
@@ -9,10 +9,9 @@ like the GNU programs :program:`gzip` and :program:`gunzip` would.
 
 The data compression is provided by the :mod:`zlib` module.
 
-The :mod:`gzip` module provides the :class:`GzipFile` class which is modeled
-after Python's File Object. The :class:`GzipFile` class reads and writes
-:program:`gzip`\ -format files, automatically compressing or decompressing the
-data so that it looks like an ordinary file object.
+The :mod:`gzip` module provides the :class:`GzipFile` class. The :class:`GzipFile`
+class reads and writes :program:`gzip`\ -format files, automatically compressing
+or decompressing the data so that it looks like an ordinary :term:`file object`.
 
 Note that additional file formats which can be decompressed by the
 :program:`gzip` and :program:`gunzip` programs, such  as those produced by
@@ -27,7 +26,7 @@ The module defines the following items:
 .. class:: GzipFile(filename=None, mode=None, compresslevel=9, fileobj=None, mtime=None)
 
    Constructor for the :class:`GzipFile` class, which simulates most of the methods
-   of a file object, with the exception of the :meth:`readinto` and
+   of a :term:`file object`, with the exception of the :meth:`readinto` and
    :meth:`truncate` methods.  At least one of *fileobj* and *filename* must be
    given a non-trivial value.
 
index fe6581285a213d0b5c990d7b74c59ea5824d0ce1..7cdbbcf9701833c18e5ddb2789ae5fdd5910bb37 100644 (file)
@@ -359,7 +359,7 @@ HTTPConnection Objects
    object.  The Content-Length header is set to the length of the
    string.
 
-   The *body* may also be an open file object, in which case the
+   The *body* may also be an open :term:`file object`, in which case the
    contents of the file is sent; this file object should support
    ``fileno()`` and ``read()`` methods. The header Content-Length is
    automatically set to the length of the file as reported by
index b6123ae6281eab380446ab09e47488f88909f702..5c21ee79f234d245937f2d683d795b75d8b4e797 100644 (file)
@@ -48,8 +48,8 @@ This module provides an interface to the mechanisms used to implement the
    If search is successful, the return value is a 3-element tuple ``(file,
    pathname, description)``:
 
-   *file* is an open file object positioned at the beginning, *pathname* is the
-   pathname of the file found, and *description* is a 3-element tuple as
+   *file* is an open :term:`file object` positioned at the beginning, *pathname*
+   is the pathname of the file found, and *description* is a 3-element tuple as
    contained in the list returned by :func:`get_suffixes` describing the kind of
    module found.
 
index 403e2f524eab94a527377e42c0c2e8326de838a3..bb4a515c4aba862293634f78e0075a5feabdf6c2 100644 (file)
@@ -5,14 +5,13 @@
    :synopsis: Interface to memory-mapped files for Unix and Windows.
 
 
-Memory-mapped file objects behave like both :class:`bytes` and like file
-objects. Unlike normal :class:`bytes` objects, however, these are mutable.
-You can use mmap objects in most places where :class:`bytes` are expected; for
-example, you can use the :mod:`re` module to search through a memory-mapped file.
-Since they're mutable, you can change a single byte by doing ``obj[index] = 97``,
-or change a subsequence by assigning to a slice: ``obj[i1:i2] = b'...'``.
-You can also read and write data starting at the current file position, and
-:meth:`seek` through the file to different positions.
+Memory-mapped file objects behave like both :class:`bytearray` and like
+:term:`file objects <file object>`.  You can use mmap objects in most places
+where :class:`bytearray` are expected; for example, you can use the :mod:`re`
+module to search through a memory-mapped file.  You can also change a single
+byte by doing ``obj[index] = 97``, or change a subsequence by assigning to a
+slice: ``obj[i1:i2] = b'...'``.  You can also read and write data starting at
+the current file position, and :meth:`seek` through the file to different positions.
 
 A memory-mapped file is created by the :class:`mmap` constructor, which is
 different on Unix and on Windows.  In either case you must provide a file
index 700d6e0b1ab60e27265eb57ae2f4c75dfced65a0..c3cbd2bc954509dfaf9aa1abeebb4e1a671077a8 100644 (file)
@@ -143,9 +143,9 @@ indicates an error, the method raises one of the above exceptions.
    *groups* is a list of group names that are new since the given date and time. If
    the *file* parameter is supplied, then the output of the  ``NEWGROUPS`` command
    is stored in a file.  If *file* is a string,  then the method will open a file
-   object with that name, write to it  then close it.  If *file* is a file object,
-   then it will start calling :meth:`write` on it to store the lines of the command
-   output. If *file* is supplied, then the returned *list* is an empty list.
+   object with that name, write to it  then close it.  If *file* is a :term:`file
+   object`, then it will start calling :meth:`write` on it to store the lines of
+   the command output. If *file* is supplied, then the returned *list* is an empty list.
 
 
 .. method:: NNTP.newnews(group, date, time, [file])
@@ -155,9 +155,9 @@ indicates an error, the method raises one of the above exceptions.
    ``(response, articles)`` where *articles* is a list of message ids. If the
    *file* parameter is supplied, then the output of the  ``NEWNEWS`` command is
    stored in a file.  If *file* is a string,  then the method will open a file
-   object with that name, write to it  then close it.  If *file* is a file object,
-   then it will start calling :meth:`write` on it to store the lines of the command
-   output. If *file* is supplied, then the returned *list* is an empty list.
+   object with that name, write to it  then close it.  If *file* is a :term:`file
+   object`, then it will start calling :meth:`write` on it to store the lines of the
+   command output. If *file* is supplied, then the returned *list* is an empty list.
 
 
 .. method:: NNTP.list([file])
@@ -169,9 +169,9 @@ indicates an error, the method raises one of the above exceptions.
    not, and ``'m'`` if the newsgroup is moderated.  (Note the ordering: *last*,
    *first*.) If the *file* parameter is supplied, then the output of the  ``LIST``
    command is stored in a file.  If *file* is a string,  then the method will open
-   a file object with that name, write to it  then close it.  If *file* is a file
-   object, then it will start calling :meth:`write` on it to store the lines of the
-   command output. If *file* is supplied, then the returned *list* is an empty
+   a file with that name, write to it  then close it.  If *file* is a :term:`file
+   object`, then it will start calling :meth:`write` on it to store the lines of
+   the command output. If *file* is supplied, then the returned *list* is an empty
    list.
 
 
@@ -207,8 +207,8 @@ indicates an error, the method raises one of the above exceptions.
    Send a ``HELP`` command.  Return a pair ``(response, list)`` where *list* is a
    list of help strings. If the *file* parameter is supplied, then the output of
    the  ``HELP`` command is stored in a file.  If *file* is a string,  then the
-   method will open a file object with that name, write to it  then close it.  If
-   *file* is a file object, then it will start calling :meth:`write` on it to store
+   method will open a file with that name, write to it  then close it.  If *file*
+   is a :term:`file object`, then it will start calling :meth:`write` on it to store
    the lines of the command output. If *file* is supplied, then the returned *list*
    is an empty list.
 
@@ -243,8 +243,8 @@ indicates an error, the method raises one of the above exceptions.
 
    Send a ``BODY`` command, where *id* has the same meaning as for :meth:`stat`.
    If the *file* parameter is supplied, then the body is stored in a file.  If
-   *file* is a string, then the method will open a file object with that name,
-   write to it then close it. If *file* is a file object, then it will start
+   *file* is a string, then the method will open a file with that name, write
+   to it then close it. If *file* is a :term:`file object`, then it will start
    calling :meth:`write` on it to store the lines of the body. Return as for
    :meth:`head`.  If *file* is supplied, then the returned *list* is an empty list.
 
@@ -270,9 +270,9 @@ indicates an error, the method raises one of the above exceptions.
    text)``, where *id* is an article number (as a string) and *text* is the text of
    the requested header for that article. If the *file* parameter is supplied, then
    the output of the  ``XHDR`` command is stored in a file.  If *file* is a string,
-   then the method will open a file object with that name, write to it  then close
-   it.  If *file* is a file object, then it will start calling :meth:`write` on it
-   to store the lines of the command output. If *file* is supplied, then the
+   then the method will open a file with that name, write to it  then close it.
+   If *file* is a :term:`file object`, then it will start calling :meth:`write` on
+   it to store the lines of the command output. If *file* is supplied, then the
    returned *list* is an empty list.
 
 
@@ -303,8 +303,8 @@ indicates an error, the method raises one of the above exceptions.
    Process an ``XGTITLE`` command, returning a pair ``(response, list)``, where
    *list* is a list of tuples containing ``(name, title)``. If the *file* parameter
    is supplied, then the output of the  ``XGTITLE`` command is stored in a file.
-   If *file* is a string,  then the method will open a file object with that name,
-   write to it  then close it.  If *file* is a file object, then it will start
+   If *file* is a string,  then the method will open a file with that name, write
+   to it  then close it.  If *file* is a :term:`file object`, then it will start
    calling :meth:`write` on it to store the lines of the command output. If *file*
    is supplied, then the returned *list* is an empty list. This is an optional NNTP
    extension, and may not be supported by all servers.
@@ -320,8 +320,8 @@ indicates an error, the method raises one of the above exceptions.
    tuple is of the form ``(article number, subject, poster, date, id, references,
    size, lines)``. If the *file* parameter is supplied, then the output of the
    ``XOVER`` command is stored in a file.  If *file* is a string,  then the method
-   will open a file object with that name, write to it  then close it.  If *file*
-   is a file object, then it will start calling :meth:`write` on it to store the
+   will open a file with that name, write to it  then close it.  If *file* is a
+   :term:`file object`, then it will start calling :meth:`write` on it to store the
    lines of the command output. If *file* is supplied, then the returned *list* is
    an empty list. This is an optional NNTP extension, and may not be supported by
    all servers.
index 80955afd4a012bc3ccfe805eef418fca17ddd0f7..2fb8cd64a20331362e4a2c36a558302fcaeabe9a 100644 (file)
@@ -401,7 +401,7 @@ process and user.
 File Object Creation
 --------------------
 
-These functions create new file objects. (See also :func:`open`.)
+These functions create new :term:`file objects <file object>`. (See also :func:`open`.)
 
 
 .. function:: fdopen(fd[, mode[, bufsize]])
@@ -436,6 +436,10 @@ process will then be assigned 3, 4, 5, and so forth.  The name "file descriptor"
 is slightly deceptive; on Unix platforms, sockets and pipes are also referenced
 by file descriptors.
 
+The :meth:`~file.fileno` method can be used to obtain the file descriptor
+associated with a :term:`file object` when required.  Note that using the file
+descriptor directly will bypass the file object methods, ignoring aspects such
+as internal buffering of data.
 
 .. function:: close(fd)
 
@@ -550,9 +554,9 @@ by file descriptors.
    Force write of file with filedescriptor *fd* to disk.  On Unix, this calls the
    native :cfunc:`fsync` function; on Windows, the MS :cfunc:`_commit` function.
 
-   If you're starting with a Python file object *f*, first do ``f.flush()``, and
-   then do ``os.fsync(f.fileno())``, to ensure that all internal buffers associated
-   with *f* are written to disk.
+   If you're starting with a buffered Python :term:`file object` *f*, first do
+   ``f.flush()``, and then do ``os.fsync(f.fileno())``, to ensure that all internal
+   buffers associated with *f* are written to disk.
 
    Availability: Unix, and Windows.
 
@@ -609,9 +613,9 @@ by file descriptors.
    .. note::
 
       This function is intended for low-level I/O.  For normal usage, use the
-      built-in function :func:`open`, which returns a "file object" with
+      built-in function :func:`open`, which returns a :term:`file object` with
       :meth:`~file.read` and :meth:`~file.wprite` methods (and many more).  To
-      wrap a file descriptor in a "file object", use :func:`fdopen`.
+      wrap a file descriptor in a file object, use :func:`fdopen`.
 
 
 .. function:: openpty()
index 21e4001139ec92fba99bdcd21a172bdfb287ed72..8157a525fe421d006bc2e5a2815c404406dc6859 100644 (file)
@@ -143,8 +143,8 @@ process more convenient:
 
 .. function:: dump(obj, file[, protocol, \*, fix_imports=True])
 
-   Write a pickled representation of *obj* to the open file object *file*.  This
-   is equivalent to ``Pickler(file, protocol).dump(obj)``.
+   Write a pickled representation of *obj* to the open :term:`file object` *file*.
+   This is equivalent to ``Pickler(file, protocol).dump(obj)``.
 
    The optional *protocol* argument tells the pickler to use the given protocol;
    supported protocols are 0, 1, 2, 3.  The default protocol is 3; a
@@ -155,8 +155,9 @@ process more convenient:
    Python needed to read the pickle produced.
 
    The *file* argument must have a write() method that accepts a single bytes
-   argument.  It can thus be a file object opened for binary writing, a
-   io.BytesIO instance, or any other custom object that meets this interface.
+   argument.  It can thus be an on-disk file opened for binary writing, a
+   :class:`io.BytesIO` instance, or any other custom object that meets this
+   interface.
 
    If *fix_imports* is True and *protocol* is less than 3, pickle will try to
    map the new Python 3.x names to the old module names used in Python 2.x,
@@ -181,8 +182,8 @@ process more convenient:
 
 .. function:: load(file, [\*, fix_imports=True, encoding="ASCII", errors="strict"])
 
-   Read a pickled object representation from the open file object *file* and
-   return the reconstituted object hierarchy specified therein.  This is
+   Read a pickled object representation from the open :term:`file object` *file*
+   and return the reconstituted object hierarchy specified therein.  This is
    equivalent to ``Unpickler(file).load()``.
 
    The protocol version of the pickle is detected automatically, so no protocol
@@ -191,9 +192,9 @@ process more convenient:
 
    The argument *file* must have two methods, a read() method that takes an
    integer argument, and a readline() method that requires no arguments.  Both
-   methods should return bytes.  Thus *file* can be a binary file object opened
-   for reading, a BytesIO object, or any other custom object that meets this
-   interface.
+   methods should return bytes.  Thus *file* can be an on-disk file opened
+   for binary reading, a :class:`io.BytesIO` object, or any other custom object
+   that meets this interface.
 
    Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
    which are used to control compatiblity support for pickle stream generated
@@ -260,8 +261,8 @@ The :mod:`pickle` module exports two classes, :class:`Pickler` and
    Python needed to read the pickle produced.
 
    The *file* argument must have a write() method that accepts a single bytes
-   argument.  It can thus be a file object opened for binary writing, a
-   io.BytesIO instance, or any other custom object that meets this interface.
+   argument.  It can thus be an on-disk file opened for binary writing, a
+   :class:`io.BytesIO` instance, or any other custom object that meets this interface.
 
    If *fix_imports* is True and *protocol* is less than 3, pickle will try to
    map the new Python 3.x names to the old module names used in Python 2.x,
@@ -304,9 +305,9 @@ The :mod:`pickle` module exports two classes, :class:`Pickler` and
 
    The argument *file* must have two methods, a read() method that takes an
    integer argument, and a readline() method that requires no arguments.  Both
-   methods should return bytes.  Thus *file* can be a binary file object opened
-   for reading, a BytesIO object, or any other custom object that meets this
-   interface.
+   methods should return bytes.  Thus *file* can be an on-disk file object opened
+   for binary reading, a :class:`io.BytesIO` object, or any other custom object
+   that meets this interface.
 
    Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
    which are used to control compatiblity support for pickle stream generated
index 8f525efdf82dfce98a7483267b4c0cc46251e873..a64337ef7c06d8b220d40bca04c485d0642fe1b7 100644 (file)
@@ -22,23 +22,23 @@ sending a graphics file.
 .. function:: decode(input, output[,header])
 
    Decode the contents of the *input* file and write the resulting decoded binary
-   data to the *output* file. *input* and *output* must either be file objects or
-   objects that mimic the file object interface. *input* will be read until
-   ``input.readline()`` returns an empty string. If the optional argument *header*
-   is present and true, underscore will be decoded as space. This is used to decode
-   "Q"-encoded headers as described in :rfc:`1522`: "MIME (Multipurpose Internet
-   Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text".
+   data to the *output* file. *input* and *output* must be :term:`file objects
+   <file object>`.  *input* will be read until ``input.readline()`` returns an
+   empty string. If the optional argument *header* is present and true, underscore
+   will be decoded as space. This is used to decode "Q"-encoded headers as
+   described in :rfc:`1522`: "MIME (Multipurpose Internet Mail Extensions)
+   Part Two: Message Header Extensions for Non-ASCII Text".
 
 
 .. function:: encode(input, output, quotetabs)
 
    Encode the contents of the *input* file and write the resulting quoted-printable
-   data to the *output* file. *input* and *output* must either be file objects or
-   objects that mimic the file object interface. *input* will be read until
-   ``input.readline()`` returns an empty string. *quotetabs* is a flag which
-   controls whether to encode embedded spaces and tabs; when true it encodes such
-   embedded whitespace, and when false it leaves them unencoded.  Note that spaces
-   and tabs appearing at the end of lines are always encoded, as per :rfc:`1521`.
+   data to the *output* file. *input* and *output* must be :term:`file objects
+   <file object>`.  *input* will be read until ``input.readline()`` returns an
+   empty string. *quotetabs* is a flag which controls whether to encode embedded
+   spaces and tabs; when true it encodes such embedded whitespace, and when
+   false it leaves them unencoded.  Note that spaces and tabs appearing at the
+   end of lines are always encoded, as per :rfc:`1521`.
 
 
 .. function:: decodestring(s[,header])
index f19cbdc856d0a63e3df3546ca1562835578a5398..70f73700b42e24e2d8113ae93f489d5e96334612 100644 (file)
@@ -79,11 +79,12 @@ The module defines the following:
       single: socket() (in module socket)
       single: popen() (in module os)
 
-   Among the acceptable object types in the sequences are Python file objects (e.g.
-   ``sys.stdin``, or objects returned by :func:`open` or :func:`os.popen`), socket
-   objects returned by :func:`socket.socket`.  You may also define a :dfn:`wrapper`
-   class yourself, as long as it has an appropriate :meth:`fileno` method (that
-   really returns a file descriptor, not just a random integer).
+   Among the acceptable object types in the sequences are Python :term:`file
+   objects <file object>` (e.g. ``sys.stdin``, or objects returned by
+   :func:`open` or :func:`os.popen`), socket objects returned by
+   :func:`socket.socket`.  You may also define a :dfn:`wrapper` class yourself,
+   as long as it has an appropriate :meth:`fileno` method (that really returns
+   a file descriptor, not just a random integer).
 
    .. note::
 
index 5314039e10129ab2985c87bc99eb924c87c0ee25..511d37beb6387b0717dde825d65b40812a686676 100644 (file)
@@ -592,7 +592,7 @@ correspond to Unix system calls applicable to sockets.
 
    .. index:: single: I/O control; buffering
 
-   Return a :dfn:`file object` associated with the socket.  The exact
+   Return a :term:`file object` associated with the socket.  The exact
    returned type depends on the arguments given to :meth:`makefile`.  These
    arguments are interpreted the same way as by the built-in :func:`open`
    function.
index 694ff56bfe55d0ac2af8dca7ff492aec03bf2b85..0a5b88280e21fe1e7c2facf0534e83b1591b1f75 100644 (file)
@@ -2210,9 +2210,9 @@ to be provided for a context manager object to define a runtime context:
    the identifier in the :keyword:`as` clause of :keyword:`with` statements using
    this context manager.
 
-   An example of a context manager that returns itself is a file object. File
-   objects return themselves from __enter__() to allow :func:`open` to be used as
-   the context expression in a :keyword:`with` statement.
+   An example of a context manager that returns itself is a :term:`file object`.
+   File objects return themselves from __enter__() to allow :func:`open` to be
+   used as the context expression in a :keyword:`with` statement.
 
    An example of a context manager that returns a related object is the one
    returned by :func:`decimal.localcontext`. These managers set the active
index edba7a7f65ffba18541720b7f57d73a43f0bb2d7..72ea8c61049e3e50191d992404160fefed6b55df 100644 (file)
@@ -107,9 +107,9 @@ This module defines one class called :class:`Popen`:
    *stdin*, *stdout* and *stderr* specify the executed programs' standard input,
    standard output and standard error file handles, respectively.  Valid values
    are :data:`PIPE`, an existing file descriptor (a positive integer), an
-   existing file object, and ``None``.  :data:`PIPE` indicates that a new pipe
-   to the child should be created.  With ``None``, no redirection will occur;
-   the child's file handles will be inherited from the parent.  Additionally,
+   existing :term:`file object`, and ``None``.  :data:`PIPE` indicates that a
+   new pipe to the child should be created.  With ``None``, no redirection will
+   occur; the child's file handles will be inherited from the parent.  Additionally,
    *stderr* can be :data:`STDOUT`, which indicates that the stderr data from the
    applications should be captured into the same file handle as for stdout.
 
@@ -377,20 +377,20 @@ The following attributes are also available:
 
 .. attribute:: Popen.stdin
 
-   If the *stdin* argument was :data:`PIPE`, this attribute is a file object
-   that provides input to the child process.  Otherwise, it is ``None``.
+   If the *stdin* argument was :data:`PIPE`, this attribute is a :term:`file
+   object` that provides input to the child process.  Otherwise, it is ``None``.
 
 
 .. attribute:: Popen.stdout
 
-   If the *stdout* argument was :data:`PIPE`, this attribute is a file object
-   that provides output from the child process.  Otherwise, it is ``None``.
+   If the *stdout* argument was :data:`PIPE`, this attribute is a :term:`file
+   object` that provides output from the child process.  Otherwise, it is ``None``.
 
 
 .. attribute:: Popen.stderr
 
-   If the *stderr* argument was :data:`PIPE`, this attribute is a file object
-   that provides error output from the child process.  Otherwise, it is
+   If the *stderr* argument was :data:`PIPE`, this attribute is a :term:`file
+   object` that provides error output from the child process.  Otherwise, it is
    ``None``.
 
 
index 45867937d4120a66f3ffa9ebb983235c5c3b3526..619d4fbf2b3e161a86c81e53a45e45f65a96d8a5 100644 (file)
@@ -792,10 +792,10 @@ always available.
           stdout
           stderr
 
-   File objects corresponding to the interpreter's standard input, output and error
-   streams.  ``stdin`` is used for all interpreter input except for scripts but
-   including calls to :func:`input`.  ``stdout`` is used for
-   the output of :func:`print` and :term:`expression` statements and for the
+   :term:`File objects <file object>` corresponding to the interpreter's standard
+   input, output and error streams.  ``stdin`` is used for all interpreter input
+   except for scripts but including calls to :func:`input`.  ``stdout`` is used
+   for the output of :func:`print` and :term:`expression` statements and for the
    prompts of :func:`input`. The interpreter's own prompts
    and (almost all of) its error messages go to ``stderr``.  ``stdout`` and
    ``stderr`` needn't be built-in file objects: any object is acceptable as long
index b617796021f61601035af6080c5e42e193ab4fb6..d5a511eaaf250208fa458b479252476898438b04 100644 (file)
@@ -66,8 +66,8 @@ Some facts and figures:
    *mode* ``'r'`` to avoid this.  If a compression method is not supported,
    :exc:`CompressionError` is raised.
 
-   If *fileobj* is specified, it is used as an alternative to a file object opened
-   for *name*. It is supposed to be at position 0.
+   If *fileobj* is specified, it is used as an alternative to a :term:`file object`
+   opened in binary mode for *name*. It is supposed to be at position 0.
 
    For special purposes, there is a second format for *mode*:
    ``'filemode|[compression]'``.  :func:`tarfile.open` will return a :class:`TarFile`
@@ -75,7 +75,7 @@ Some facts and figures:
    be done on the file. If given, *fileobj* may be any object that has a
    :meth:`read` or :meth:`write` method (depending on the *mode*). *bufsize*
    specifies the blocksize and defaults to ``20 * 512`` bytes. Use this variant
-   in combination with e.g. ``sys.stdin``, a socket file object or a tape
+   in combination with e.g. ``sys.stdin``, a socket :term:`file object` or a tape
    device. However, such a :class:`TarFile` object is limited in that it does
    not allow to be accessed randomly, see :ref:`tar-examples`.  The currently
    possible modes:
@@ -344,9 +344,9 @@ object, see :ref:`tarinfo-objects` for details.
 .. method:: TarFile.extractfile(member)
 
    Extract a member from the archive as a file object. *member* may be a filename
-   or a :class:`TarInfo` object. If *member* is a regular file, a file-like object
-   is returned. If *member* is a link, a file-like object is constructed from the
-   link's target. If *member* is none of the above, :const:`None` is returned.
+   or a :class:`TarInfo` object. If *member* is a regular file, a :term:`file-like
+   object` is returned. If *member* is a link, a file-like object is constructed from
+   the link's target. If *member* is none of the above, :const:`None` is returned.
 
    .. note::
 
@@ -380,9 +380,9 @@ object, see :ref:`tarinfo-objects` for details.
 
 .. method:: TarFile.gettarinfo(name=None, arcname=None, fileobj=None)
 
-   Create a :class:`TarInfo` object for either the file *name* or the file object
-   *fileobj* (using :func:`os.fstat` on its file descriptor).  You can modify some
-   of the :class:`TarInfo`'s attributes before you add it using :meth:`addfile`.
+   Create a :class:`TarInfo` object for either the file *name* or the :term:`file
+   object` *fileobj* (using :func:`os.fstat` on its file descriptor).  You can modify
+   some of the :class:`TarInfo`'s attributes before you add it using :meth:`addfile`.
    If given, *arcname* specifies an alternative name for the file in the archive.
 
 
index cde1b72ec2f5914d64e71700a404ee0a382aa4fd..a13df0dd22db900b62a33259e99d05a6c20af979 100644 (file)
@@ -29,7 +29,7 @@ The module defines the following user-callable functions:
 
 .. function:: TemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix='', prefix='tmp', dir=None)
 
-   Return a file-like object that can be used as a temporary storage area.
+   Return a :term:`file-like object` that can be used as a temporary storage area.
    The file is created using :func:`mkstemp`. It will be destroyed as soon
    as it is closed (including an implicit close when the object is garbage
    collected).  Under Unix, the directory entry for the file is removed
index 591850e2cea983fd4fafd1334c579e991ccc4c53..a90a825be44ecc1527dc58cf9f4e58eed539fafb 100644 (file)
@@ -17,7 +17,7 @@ I/O control (and then only if configured at installation time).
 
 All functions in this module take a file descriptor *fd* as their first
 argument.  This can be an integer file descriptor, such as returned by
-``sys.stdin.fileno()``, or a file object, such as ``sys.stdin`` itself.
+``sys.stdin.fileno()``, or a :term:`file object`, such as ``sys.stdin`` itself.
 
 This module also defines all the constants needed to work with the functions
 provided here; these have the same name as their counterparts in C.  Please
index 612e56f9bab42d4a88c9686c757218c70475db35..10b69c98c012a6740c8607e70c1c73ca60206dfe 100644 (file)
@@ -58,8 +58,9 @@ is exposed by the :mod:`weakref` module for the benefit of advanced uses.
 
 Not all objects can be weakly referenced; those objects which can include class
 instances, functions written in Python (but not in C), instance methods, sets,
-frozensets, file objects, :term:`generator`\s, type objects, sockets, arrays,
-deques, and regular expression pattern objects.
+frozensets, some :term:`file objects <file object>`, :term:`generator`\s, type
+objects, sockets, arrays, deques and regular expression pattern objects.
+
 
 Several built-in types such as :class:`list` and :class:`dict` do not directly
 support weak references but can add support through subclassing::
index 0d3f61cb34d7e18127f9a085b06730e47ce1f8cb..bc04a5355e31250caedb1bc5c7500075fffe7e96 100644 (file)
@@ -89,9 +89,10 @@ Functions
 .. function:: iterparse(source, events=None)
 
    Parses an XML section into an element tree incrementally, and reports what's
-   going on to the user. *source* is a filename or file object containing XML data.
-   *events* is a list of events to report back.  If omitted, only "end" events are
-   reported. Returns an :term:`iterator` providing ``(event, elem)`` pairs.
+   going on to the user.  *source* is a filename or :term:`file object` containing
+   XML data.  *events* is a list of events to report back.  If omitted, only "end"
+   events are reported.  Returns an :term:`iterator` providing ``(event, elem)``
+   pairs.
 
    .. note::
 
@@ -359,16 +360,16 @@ ElementTree Objects
 
    .. method:: parse(source, parser=None)
 
-      Loads an external XML section into this element tree. *source* is a file
-      name or file object. *parser* is an optional parser instance.  If not
-      given, the standard XMLTreeBuilder parser is used. Returns the section
+      Loads an external XML section into this element tree.  *source* is a file
+      name or :term:`file object`.  *parser* is an optional parser instance.
+      If not given, the standard XMLTreeBuilder parser is used.  Returns the section
       root element.
 
 
    .. method:: write(file, encoding=None)
 
-      Writes the element tree to a file, as XML. *file* is a file name, or a
-      file object opened for writing. *encoding* [1]_ is the output encoding
+      Writes the element tree to a file, as XML.  *file* is a file name, or a
+      :term:`file object` opened for writing.  *encoding* [1]_ is the output encoding
       (default is US-ASCII).
 
 This is the XML file that is going to be manipulated::
index 25ab11ee8f51aa6bdd7305fd601206bac75a479a..3585ca7a7fb7f7ea4a6e88c3eaa505e9f36d6df3 100644 (file)
@@ -781,9 +781,9 @@ I/O objects (also known as file objects)
       single: stdout (in module sys)
       single: stderr (in module sys)
 
-   A file object represents an open file.  Various shortcuts are available
-   to create file objects: the :func:`open` built-in function, and also
-   :func:`os.popen`, :func:`os.fdopen`, and the :meth:`makefile` method
+   A :term:`file object` represents an open file.  Various shortcuts are
+   available to create file objects: the :func:`open` built-in function, and
+   also :func:`os.popen`, :func:`os.fdopen`, and the :meth:`makefile` method
    of socket objects (and perhaps by other functions or methods provided
    by extension modules).
 
index dbb56f61623ed7a65a646f435b7ca0bb2313bff9..84e83b5d7dd1c45c6d81f396390aaebe9683e467 100644 (file)
@@ -232,8 +232,8 @@ Reading and Writing Files
    builtin: open
    object: file
 
-:func:`open` returns a file object, and is most commonly used with two
-arguments: ``open(filename, mode)``.
+:func:`open` returns a :term:`file object`, and is most commonly used with
+two arguments: ``open(filename, mode)``.
 
 ::