| \section{\module{linecache} --- |
| Random access to text lines} |
| |
| \declaremodule{standard}{linecache} |
| \sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il} |
| \modulesynopsis{This module provides random access to individual lines |
| from text files.} |
| |
| |
| The \module{linecache} module allows one to get any line from any file, |
| while attempting to optimize internally, using a cache, the common case |
| where many lines are read from a single file. This is used by the |
| \refmodule{traceback} module to retrieve source lines for inclusion in |
| the formatted traceback. |
| |
| The \module{linecache} module defines the following functions: |
| |
| \begin{funcdesc}{getline}{filename, lineno\optional{, module_globals}} |
| Get line \var{lineno} from file named \var{filename}. This function |
| will never throw an exception --- it will return \code{''} on errors |
| (the terminating newline character will be included for lines that are |
| found). |
| |
| If a file named \var{filename} is not found, the function will look |
| for it in the module\indexiii{module}{search}{path} search path, |
| \code{sys.path}, after first checking for a \pep{302} \code{__loader__} |
| in \var{module_globals}, in case the module was imported from a zipfile |
| or other non-filesystem import source. |
| |
| \versionadded[The \var{module_globals} parameter was added]{2.5} |
| \end{funcdesc} |
| |
| \begin{funcdesc}{clearcache}{} |
| Clear the cache. Use this function if you no longer need lines from |
| files previously read using \function{getline()}. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{checkcache}{\optional{filename}} |
| Check the cache for validity. Use this function if files in the cache |
| may have changed on disk, and you require the updated version. If |
| \var{filename} is omitted, it will check all the entries in the cache. |
| \end{funcdesc} |
| |
| Example: |
| |
| \begin{verbatim} |
| >>> import linecache |
| >>> linecache.getline('/etc/passwd', 4) |
| 'sys:x:3:3:sys:/dev:/bin/sh\n' |
| \end{verbatim} |