Spec-Zone.ru › Python 3.6

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.6/library/linecache.html

Spec-Zone.ru

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