# stat

### Интерпретация результатов os.stat ()

Модуль **stat** определяет константы и функции для интерпретации результатов [os.stat ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/faily-i-direktorii/os.stat.md), [os.fstat ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/operacii-s-failovymi-deskriptorami/os.fstat.md) и [os.lstat ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/faily-i-direktorii/os.lstat.md) (если они существуют). Для получения полной информации о вызовах `stat ()`, `fstat ()` и `lstat ()` обратитесь к документации для вашей системы.

*Изменено в версии 3.4:* модуль **stat** поддерживается реализацией C.

Модуль **stat** определяет следующие функции для проверки определенных типов файлов:

* **stat.S\_ISDIR (*****mode*****)** - возвращает ненулевое значение, если ***mode*** является каталогом
* stat.S\_ISCHR (mode)
* stat.S\_ISBLK (mode)
* **stat.S\_ISREG (*****mode*****)** - возвращает ненулевое значение, если ***mode*** является обычным файлом
* не заполнено...

Обычно вы используете функции `os.path.is* ()` для проверки типа файла; приведенные здесь функции полезны, когда вы выполняете несколько тестов одного и того же файла и хотите избежать накладных расходов на системный вызов `stat ()` для каждого теста. Они также полезны при проверке информации о файле, который не обрабатывается [os.path](/python-docs/moduli-standartnoi-biblioteki-1/dostup-k-failam-i-papkam/os.path.md), например при проверке блочных и символьных устройств.

Пример:

```python
import os, sys
from stat import *

def walktree(top, callback):
    '''рекурсивно спускается по дереву каталогов с корнем вверху,
    исполняет функции обратного вызова для каждого обычного файла'''

    for f in os.listdir(top):
        pathname = os.path.join(top, f)
        mode = os.stat(pathname).st_mode
        if S_ISDIR(mode):
            # Это каталог, заходим в него
            walktree(pathname, callback)
        elif S_ISREG(mode):
            # Это файл, вызываем функцию обратного вызова
            callback(pathname)
        else:
            # Неизвестный тип файла, печатаем сообщение
            print('Skipping %s' % pathname)

def visitfile(file):
    print('visiting', file)

if __name__ == '__main__':
    walktree(sys.argv[1], visitfile)
```

Предоставляет дополнительную служебную функцию для преобразования режима файла в удобочитаемую строку:

* stat.filemode ()

Все перечисленные ниже переменные - это просто символические индексы в кортеже из 10, возвращаемом [os.stat ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/faily-i-direktorii/os.stat.md), [os.fstat ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/operacii-s-failovymi-deskriptorami/os.fstat.md) или [os.lstat ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/faily-i-direktorii/os.lstat.md).

* **stat.ST\_MODE** - режим защиты ***inode***
* не заполнено...
* **stat.ST\_SIZE** - размер простого файла в байтах; количество данных, ожидающих некоторых специальных файлов
* не заполнено...


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/dostup-k-failam-i-papkam/stat.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
