From: Ezio Melotti Date: Mon, 15 Apr 2013 16:08:31 +0000 (+0300) Subject: #13510: clarify that f.readlines() is note necessary to iterate over a file. Patch... X-Git-Tag: v2.7.5~61 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1b3320659667b688a3d5740d04e4b7480a09fcc3;p=thirdparty%2FPython%2Fcpython.git #13510: clarify that f.readlines() is note necessary to iterate over a file. Patch by Dan Riti. --- diff --git a/Doc/library/io.rst b/Doc/library/io.rst index 899408687b71..cc6cc95c86c4 100644 --- a/Doc/library/io.rst +++ b/Doc/library/io.rst @@ -296,6 +296,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 diff --git a/Doc/tutorial/inputoutput.rst b/Doc/tutorial/inputoutput.rst index 2f08110feefc..b1611f205908 100644 --- a/Doc/tutorial/inputoutput.rst +++ b/Doc/tutorial/inputoutput.rst @@ -295,18 +295,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, @@ -314,9 +304,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 ``None``. :: diff --git a/Misc/ACKS b/Misc/ACKS index 78f074c76db5..e9ec9c87fc28 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -838,6 +838,7 @@ Nicholas Riley Jean-Claude Rimbault Vlad Riscutia Wes Rishel +Dan Riti Juan M. Bello Rivas Davide Rizzo Anthony Roach