#13510: clarify that f.readlines() is note necessary to iterate over a file. Patch by Dan Riti.
This commit is contained in:
parent
45fe62dc9c
commit
ed3cd7e445
|
@ -298,6 +298,9 @@ I/O Base Classes
|
|||
to control the number of lines read: no more lines will be read if the
|
||||
total size (in bytes/characters) of all lines so far exceeds *hint*.
|
||||
|
||||
Note that it's already possible to iterate on file objects using ``for
|
||||
line in file: ...`` without calling ``file.readlines()``.
|
||||
|
||||
.. method:: seek(offset, whence=SEEK_SET)
|
||||
|
||||
Change the stream position to the given byte *offset*. *offset* is
|
||||
|
|
|
@ -300,18 +300,8 @@ containing only a single newline. ::
|
|||
>>> f.readline()
|
||||
''
|
||||
|
||||
``f.readlines()`` returns a list containing all the lines of data in the file.
|
||||
If given an optional parameter *sizehint*, it reads that many bytes from the
|
||||
file and enough more to complete a line, and returns the lines from that. This
|
||||
is often used to allow efficient reading of a large file by lines, but without
|
||||
having to load the entire file in memory. Only complete lines will be returned.
|
||||
::
|
||||
|
||||
>>> f.readlines()
|
||||
['This is the first line of the file.\n', 'Second line of the file\n']
|
||||
|
||||
An alternative approach to reading lines is to loop over the file object. This is
|
||||
memory efficient, fast, and leads to simpler code::
|
||||
For reading lines from a file, you can loop over the file object. This is memory
|
||||
efficient, fast, and leads to simple code::
|
||||
|
||||
>>> for line in f:
|
||||
... print(line, end='')
|
||||
|
@ -319,9 +309,8 @@ memory efficient, fast, and leads to simpler code::
|
|||
This is the first line of the file.
|
||||
Second line of the file
|
||||
|
||||
The alternative approach is simpler but does not provide as fine-grained
|
||||
control. Since the two approaches manage line buffering differently, they
|
||||
should not be mixed.
|
||||
If you want to read all the lines of a file in a list you can also use
|
||||
``list(f)`` or ``f.readlines()``.
|
||||
|
||||
``f.write(string)`` writes the contents of *string* to the file, returning
|
||||
the number of characters written. ::
|
||||
|
|
Loading…
Reference in New Issue