Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 26 additions & 25 deletions Doc/tutorial/inputoutput.rst
Original file line number Diff line number Diff line change
Expand Up @@ -395,26 +395,26 @@ Methods of File Objects
The rest of the examples in this section will assume that a file object called
``f`` has already been created.

To read a file's contents, call ``f.read(size)``, which reads some quantity of
data and returns it as a string (in text mode) or bytes object (in binary mode).
*size* is an optional numeric argument. When *size* is omitted or negative, the
entire contents of the file will be read and returned; it's your problem if the
file is twice as large as your machine's memory. Otherwise, at most *size*
characters (in text mode) or *size* bytes (in binary mode) are read and returned.
If the end of the file has been reached, ``f.read()`` will return an empty
string (``''``). ::
To read a file's contents, call :meth:`f.read(size) <io.RawIOBase.read>`, which
reads some quantity of data and returns it as a string (in text mode) or bytes
object (in binary mode). *size* is an optional numeric argument. When *size* is
omitted or negative, the entire contents of the file will be read and returned;
it's your problem if the file is twice as large as your machine's memory.
Otherwise, at most *size* characters (in text mode) or *size* bytes
(in binary mode) are read and returned. If the end of the file has been reached,
``f.read()`` will return an empty string (``''``). ::

>>> f.read()
'This is the entire file.\n'
>>> f.read()
''

``f.readline()`` reads a single line from the file; a newline character (``\n``)
is left at the end of the string, and is only omitted on the last line of the
file if the file doesn't end in a newline. This makes the return value
unambiguous; if ``f.readline()`` returns an empty string, the end of the file
has been reached, while a blank line is represented by ``'\n'``, a string
containing only a single newline. ::
:meth:`f.readline() <io.IOBase.readline>` reads a single line from the file; a
newline character (``\n``) is left at the end of the string, and is only
omitted on the last line of the file if the file doesn't end in a newline. This
makes the return value unambiguous; if ``f.readline()`` returns an empty string,
the end of the file has been reached, while a blank line is represented by
``'\n'``, a string containing only a single newline. ::

>>> f.readline()
'This is the first line of the file.\n'
Expand All @@ -433,10 +433,10 @@ efficient, fast, and leads to simple code::
Second line of the file

If you want to read all the lines of a file in a list you can also use
``list(f)`` or ``f.readlines()``.
``list(f)`` or :meth:`f.readlines() <io.IOBase.readlines>`.

``f.write(string)`` writes the contents of *string* to the file, returning
the number of characters written. ::
:meth:`f.write(string) <io.RawIOBase.write>` writes the contents of *string* to
the file, returning the number of characters written. ::

>>> f.write('This is a test\n')
15
Expand All @@ -449,15 +449,16 @@ or a bytes object (in binary mode) -- before writing them::
>>> f.write(s)
18

``f.tell()`` returns an integer giving the file object's current position in the file
represented as number of bytes from the beginning of the file when in binary mode and
an opaque number when in text mode.
:meth:`f.tell() <io.IOBase.tell>` returns an integer giving the file object's
current position in the file represented as number of bytes from the beginning
of the file when in binary mode and an opaque number when in text mode.

To change the file object's position, use ``f.seek(offset, whence)``. The position is computed
from adding *offset* to a reference point; the reference point is selected by
the *whence* argument. A *whence* value of 0 measures from the beginning
of the file, 1 uses the current file position, and 2 uses the end of the file as
the reference point. *whence* can be omitted and defaults to 0, using the
To change the file object's position, use
:meth:`f.seek(offset, whence) <io.IOBase.seek>`. The position is computed from
adding *offset* to a reference point; the reference point is selected by the
*whence* argument. A *whence* value of 0 measures from the beginning of the
file, 1 uses the current file position, and 2 uses the end of the file as the
reference point. *whence* can be omitted and defaults to 0, using the
beginning of the file as the reference point. ::

>>> f = open('workfile', 'rb+')
Expand Down
Loading