Spec-Zone.ru › Python 3.5

linecache — Случайный доступ к строкам текста

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

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

Функция tokenize.open() используется для открытия файлов. Эта функция использует tokenize.detect_encoding() для получения кодировки файла; если кодировка не указана, то кодировка файла по умолчанию — UTF-8.

Модуль 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 опущен, будет проверена вся информация в кеше.

linecache.lazycache(filename, module_globals)

Захват достаточного количества деталей о модуле, не основанном на файлах, чтобы разрешить получение его строк позже через getline(), даже если module_globals None в последующем вызове. Это позволяет избежать ввода-вывода до тех пор, пока строка не потребуется, без необходимости бесконечного хранения глобальных переменных модуля.

Введено в версии 3.5.

Пример:

>>> import linecache
>>> linecache.getline(linecache.__file__, 8)
'import sys\n'

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.5/library/linecache.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API