blob: 8a9b914eb39d4101f21ffee0bac7fb9366f08844 [file] [log] [blame]
Fred Drake21572fd1999-06-14 19:47:47 +00001\section{\module{linecache} ---
Fred Drake97c2fa01999-06-17 16:38:18 +00002 Random access to text lines}
Fred Drake21572fd1999-06-14 19:47:47 +00003
4\declaremodule{standard}{linecache}
Fred Drake57657bc2000-12-01 15:25:23 +00005\sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il}
Fred Drake97c2fa01999-06-17 16:38:18 +00006\modulesynopsis{This module provides random access to individual lines
7 from text files.}
Fred Drake21572fd1999-06-14 19:47:47 +00008
9
10The \module{linecache} module allows one to get any line from any file,
11while attempting to optimize internally, using a cache, the common case
Fred Drake97c2fa01999-06-17 16:38:18 +000012where many lines are read from a single file. This is used by the
13\refmodule{traceback} module to retrieve source lines for inclusion in
14the formatted traceback.
Fred Drake21572fd1999-06-14 19:47:47 +000015
16The \module{linecache} module defines the following functions:
17
18\begin{funcdesc}{getline}{filename, lineno}
19Get line \var{lineno} from file named \var{filename}. This function
Fred Drake38e5d272000-04-03 20:13:55 +000020will never throw an exception --- it will return \code{''} on errors
21(the terminating newline character will be included for lines that are
22found).
Fred Drake21572fd1999-06-14 19:47:47 +000023
24If a file named \var{filename} is not found, the function will look
Fred Drake97c2fa01999-06-17 16:38:18 +000025for it in the module\indexiii{module}{search}{path} search path,
26\code{sys.path}.
Fred Drake21572fd1999-06-14 19:47:47 +000027\end{funcdesc}
28
29\begin{funcdesc}{clearcache}{}
Fred Drake38e5d272000-04-03 20:13:55 +000030Clear the cache. Use this function if you no longer need lines from
31files previously read using \function{getline()}.
Fred Drake21572fd1999-06-14 19:47:47 +000032\end{funcdesc}
33
34\begin{funcdesc}{checkcache}{}
Fred Drake97c2fa01999-06-17 16:38:18 +000035Check the cache for validity. Use this function if files in the cache
36may have changed on disk, and you require the updated version.
Fred Drake21572fd1999-06-14 19:47:47 +000037\end{funcdesc}
38
39Example:
40
41\begin{verbatim}
42>>> import linecache
43>>> linecache.getline('/etc/passwd', 4)
Ka-Ping Yeefa004ad2001-01-24 17:19:08 +000044'sys:x:3:3:sys:/dev:/bin/sh\n'
Fred Drake21572fd1999-06-14 19:47:47 +000045\end{verbatim}