diff options
author | Fred Drake <fdrake@acm.org> | 2001-01-09 22:47:46 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2001-01-09 22:47:46 (GMT) |
commit | 3c48ef7de8706835640441b821010001f35f41eb (patch) | |
tree | 2d7dca2668cc5c1f469209dbd7e3ea589f1ff233 /Doc/lib/libxreadlines.tex | |
parent | 92f4b366cbbc0840ad4fca34e7dfceead66a90b4 (diff) | |
download | cpython-3c48ef7de8706835640441b821010001f35f41eb.zip cpython-3c48ef7de8706835640441b821010001f35f41eb.tar.gz cpython-3c48ef7de8706835640441b821010001f35f41eb.tar.bz2 |
Added documentation for the xreadlines module & related changes. The
documentation was written by Jeff Epler (thanks!).
Diffstat (limited to 'Doc/lib/libxreadlines.tex')
-rw-r--r-- | Doc/lib/libxreadlines.tex | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Doc/lib/libxreadlines.tex b/Doc/lib/libxreadlines.tex new file mode 100644 index 0000000..0285f03 --- /dev/null +++ b/Doc/lib/libxreadlines.tex @@ -0,0 +1,52 @@ +\section{\module{xreadlines} --- + Efficient iteration over a file} + +\declaremodule{extension}{xreadlines} +\modulesynopsis{Efficient iteration over the lines of a file.} + +This module defines a new object type which can efficiently iterate +over the lines of a file. An xreadlines object is a sequence type +which implements simple in-order indexing beginning at \code{0}, as +required by \keyword{for} statement or the +\function{filter()} function. + +Thus, the code + +\begin{verbatim} +import xreadlines, sys + +for line in xreadlines.xreadlines(sys.stdin): + pass +\end{verbatim} + +has approximately the same speed and memory consumption as + +\begin{verbatim} +while 1: + lines = sys.stdin.readlines(8*1024) + if not lines: break + for line in lines: + pass +\end{verbatim} + +except the clarity of the \keyword{for} statement is retained in the +former case. + +\begin{funcdesc}{xreadlines}{fileobj} + Return a new xreadlines object which will iterate over the contents + of \var{fileobj}. \var{fileobj} must have a \method{readlines()} + method that supports the \var{sizehint} parameter. +\end{funcdesc} + +An xreadlines object \var{s} supports the following sequence +operation: + +\begin{tableii}{c|l}{code}{Operation}{Result} + \lineii{\var{s}[\var{i}]}{\var{i}'th line of \var{s}} +\end{tableii} + +If successive values of \var{i} are not sequential starting from +\code{0}, this code will raise \exception{RuntimeError}. + +After the last line of the file is read, this code will raise an +\exception{IndexError}. |