Add better error reporting for MemoryErrors caused by str->float conversions.
[python.git] / Doc / library / linecache.rst
blobf3d83799dcf7a8c71d4479c7827debde7a36d8b5
2 :mod:`linecache` --- Random access to text lines
3 ================================================
5 .. module:: linecache
6    :synopsis: This module provides random access to individual lines from text files.
7 .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
10 The :mod:`linecache` module allows one to get any line from any file, while
11 attempting to optimize internally, using a cache, the common case where many
12 lines are read from a single file.  This is used by the :mod:`traceback` module
13 to retrieve source lines for inclusion in  the formatted traceback.
15 The :mod:`linecache` module defines the following functions:
18 .. function:: getline(filename, lineno[, module_globals])
20    Get line *lineno* from file named *filename*. This function will never throw an
21    exception --- it will return ``''`` on errors (the terminating newline character
22    will be included for lines that are found).
24    .. index:: triple: module; search; path
26    If a file named *filename* is not found, the function will look for it in the
27    module search path, ``sys.path``, after first checking for a :pep:`302`
28    ``__loader__`` in *module_globals*, in case the module was imported from a
29    zipfile or other non-filesystem import source.
31    .. versionadded:: 2.5
32       The *module_globals* parameter was added.
35 .. function:: clearcache()
37    Clear the cache.  Use this function if you no longer need lines from files
38    previously read using :func:`getline`.
41 .. function:: checkcache([filename])
43    Check the cache for validity.  Use this function if files in the cache  may have
44    changed on disk, and you require the updated version.  If *filename* is omitted,
45    it will check all the entries in the cache.
47 Example::
49    >>> import linecache
50    >>> linecache.getline('/etc/passwd', 4)
51    'sys:x:3:3:sys:/dev:/bin/sh\n'