# 10.9. `linecache` — Accès direct aux lignes d’un texte

Code source : Lib/linecache.py

The `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 `traceback` module to retrieve source lines for inclusion in the formatted traceback.

Le module `linecache` définit les fonctions suivantes :

`linecache.``getline`(filename, lineno[, module_globals])

  Récupère la ligne lineno du fichier filename. Cette fonction ne lèvera jamais d’exception, elle préfèrera renvoyer `''` en cas d’erreur (le caractère de retour à la ligne sera inclus pour les lignes existantes).

  Si le fichier filename n’est pas trouvé, la fonction le cherchera dans les chemins de recherche de modules, `sys.path`, après avoir vérifié si un ``__loader__` (de la PEP 302) se trouve dans module_globals, dans le cas où le module a été importé depuis un fichier zip, ou une autre source hors du système de fichier.

  Nouveau dans la version 2.5: The module_globals parameter was added.

`linecache.``clearcache`()

  Nettoie le cache. Utilisez cette fonction si vous n’avez plus besoin des lignes des fichiers précédemment lus via `getline()`.

`linecache.``checkcache`([filename])

  Vérifie la validité du cache. Utilisez cette fonction si les fichiers du cache pourraient avoir changé sur le disque, et que vous en voudriez une version à jour. Sans filename, toutes les entrées du cache seront vérifiées.

Exemple :

    >>> import linecache
    >>> linecache.getline('/etc/passwd', 4)
    'sys:x:3:3:sys:/dev:/bin/sh\n'