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'