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

---

# 10.11. [`dircache`](https://python-all.ru/2.7/library/dircache.html#module-dircache) – Кэшированные списки каталогов

Устарело с версии 2.6: Модуль [`dircache`](https://python-all.ru/2.7/library/dircache.html#module-dircache) удалён в Python 3.

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

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

#### `dircache.reset()`

Сбрасывает кэш каталога.

#### `dircache.listdir(path)`

Возвращает список содержимого каталога *path*, полученный из [`os.listdir()`](https://python-all.ru/2.7/library/os.html#os.listdir). Обратите внимание, что если *path* не изменяется, последующие вызовы [`listdir()`](https://python-all.ru/2.7/library/dircache.html#dircache.listdir) не будут перечитывать структуру каталога.

Обратите внимание, что возвращаемый список следует рассматривать как доступный только для чтения. (Возможно, в будущей версии следует изменить его, чтобы возвращался кортеж?)

#### `dircache.opendir(path)`

То же, что и [`listdir()`](https://python-all.ru/2.7/library/dircache.html#dircache.listdir). Определено для обратной совместимости.

#### `dircache.annotate(head, list)`

Предполагается, что *list* – это список путей относительно *head*, и добавляет на месте косую черту `'/'` к каждому пути, который указывает на каталог.

```python
>>> import dircache
>>> a = dircache.listdir('/')
>>> a = a[:] # Скопировать возвращаемое значение, чтобы можно было изменить 'a'
>>> a
['bin', 'boot', 'cdrom', 'dev', 'etc', 'floppy', 'home', 'initrd', 'lib', 'lost+
found', 'mnt', 'proc', 'root', 'sbin', 'tmp', 'usr', 'var', 'vmlinuz']
>>> dircache.annotate('/', a)
>>> a
['bin/', 'boot/', 'cdrom/', 'dev/', 'etc/', 'floppy/', 'home/', 'initrd/', 'lib/
', 'lost+found/', 'mnt/', 'proc/', 'root/', 'sbin/', 'tmp/', 'usr/', 'var/', 'vm
linuz']
```
