Документация Python неофициальный перевод

11.8. linecache – произвольный доступ к строкам текстаlinecache – Random access to text lines

Исходный код: Lib/linecache.py


Модуль linecache позволяет получить любую строку из любого файла, при этом пытаясь внутренне оптимизировать с помощью кэша типичный случай, когда много строк читается из одного файла. Он используется модулем traceback для получения исходных строк для включения в форматированный traceback.

Модуль linecache определяет следующие функции:

linecache.getline(filename, lineno, module_globals=None)

Возвращает строку lineno из файла с именем filename. Эта функция никогда не генерирует исключение – при ошибках она возвращает '' (символ завершающего перевода строки будет включен для найденных строк).

Если файл с именем filename не найден, функция будет искать его в пути поиска модулей sys.path, предварительно проверив наличие PEP 302 __loader__ в module_globals, на случай, если модуль был импортирован из zip-файла или другого источника, не являющегося файловой системой.

linecache.clearcache()

Очищает кеш. Используйте эту функцию, если строки из файлов, ранее прочитанные с помощью getline(), больше не нужны.

linecache.checkcache(filename=None)

Проверяет кэш на валидность. Используйте эту функцию, если файлы в кэше могли измениться на диске и требуется обновленная версия. Если filename опущен, проверяются все записи в кэше.

Пример:

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