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

linecache.md

40 строк · 3.8 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.4/library/linecache.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 11.9. [`linecache`](https://python-all.ru/3.4/library/linecache.html#module-linecache) – Произвольный доступ к текстовым строкам89**Исходный код:** [Lib/linecache.py](https://python-all.ru/src/3.4/Lib/linecache.py)1011---1213Модуль [`linecache`](https://python-all.ru/3.4/library/linecache.html#module-linecache) позволяет получить любую строку из исходного файла Python, при этом пытаясь внутренне оптимизировать типичный случай, когда много строк читается из одного файла, с помощью кеша. Он используется модулем [`traceback`](https://python-all.ru/3.4/library/traceback.html#module-traceback) для получения строк исходного кода для включения в форматированный traceback.1415Функция [`tokenize.open()`](https://python-all.ru/3.4/library/tokenize.html#tokenize.open) используется для открытия файлов. Эта функция использует [`tokenize.detect_encoding()`](https://python-all.ru/3.4/library/tokenize.html#tokenize.detect_encoding) для получения кодировки файла; при отсутствии маркера кодировки кодировка файла по умолчанию – UTF-8.1617Модуль [`linecache`](https://python-all.ru/3.4/library/linecache.html#module-linecache) определяет следующие функции:1819#### `linecache.getline(filename, lineno, module_globals=None)`2021Возвращает строку *lineno* из файла с именем *filename*. Эта функция никогда не генерирует исключение – при ошибках она возвращает `''` (символ завершающего перевода строки будет включен для найденных строк).2223Если файл с именем *filename* не найден, функция будет искать его в пути поиска модулей `sys.path`, предварительно проверив наличие [**PEP 302**](https://python-all.ru/3.4/library/linecache.html) `__loader__` в *module\_globals*, на случай, если модуль был импортирован из zip-файла или другого источника, не являющегося файловой системой.2425#### `linecache.clearcache()`2627Очищает кеш. Используйте эту функцию, если строки из файлов, ранее прочитанные с помощью [`getline()`](https://python-all.ru/3.4/library/linecache.html#linecache.getline), больше не нужны.2829#### `linecache.checkcache(filename=None)`3031Проверяет кэш на валидность. Используйте эту функцию, если файлы в кэше могли измениться на диске и требуется обновленная версия. Если *filename* опущен, проверяются все записи в кэше.3233Пример:3435```python36>>> import linecache37>>> linecache.getline(linecache.__file__, 8)38'import sys\n'39```40