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

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

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


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

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

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

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

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

Новое в версии 2.5: Был добавлен параметр module_globals.

linecache.clearcache()

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

linecache.checkcache([filename])

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

Пример:

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