> **Источник:** https://python-all.ru/2.7/library/linecache.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 10.9. [`linecache`](https://python-all.ru/2.7/library/linecache.html#module-linecache) – произвольный доступ к строкам текста

**Исходный код:** [Lib/linecache.py](https://python-all.ru/src/2.7/Lib/linecache.py)

---

Модуль [`linecache`](https://python-all.ru/2.7/library/linecache.html#module-linecache) позволяет получить любую строку из любого файла, при этом внутренне пытаясь оптимизировать (с использованием кеша) типичный случай, когда из одного файла читается много строк. Он используется модулем [`traceback`](https://python-all.ru/2.7/library/traceback.html#module-traceback) для получения строк исходного кода для включения в отформатированную трассировку.

Модуль [`linecache`](https://python-all.ru/2.7/library/linecache.html#module-linecache) определяет следующие функции:

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

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

Если файл с именем *filename* не найден, функция ищет его в пути поиска модулей, `sys.path`, предварительно проверив [**PEP 302**](https://python-all.ru/2.7/library/linecache.html) `__loader__` в *module\_globals*, на случай, если модуль был импортирован из zip-файла или другого источника, не являющегося файловой системой.

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

#### `linecache.clearcache()`

Очищает кэш. Используйте эту функцию, если строки из файлов, ранее прочитанных с помощью [`getline()`](https://python-all.ru/2.7/library/linecache.html#linecache.getline), больше не нужны.

#### `linecache.checkcache([filename])`

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

Пример:

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