Spec-Zone.ru › Python 3.12

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

Исходный код: Lib/stat.py

Модуль stat определяет константы и функции для интерпретации результатов os.stat(), os.fstat() и os.lstat() (если они существуют). Для получения полной информации о вызовах stat(), fstat() и lstat(), обратитесь к документации вашей системы.

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

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

stat.S_ISDIR(mode)

Возвращает ненулевое значение, если режим соответствует каталогу.

stat.S_ISCHR(mode)

Возвращает ненулевое значение, если режим соответствует файлу устройства символьного типа.

stat.S_ISBLK(mode)

Возвращает ненулевое значение, если режим соответствует файлу устройства блочного типа.

stat.S_ISREG(mode)

Возвращает ненулевое значение, если режим соответствует обычному файлу.

stat.S_ISFIFO(mode)

Возвращает ненулевое значение, если режим соответствует FIFO (именованной очереди).

stat.S_ISLNK(mode)

Возвращает ненулевое значение, если режим соответствует символической ссылке.

stat.S_ISSOCK(mode)

Возвращает ненулевое значение, если режим соответствует сокету.

stat.S_ISDOOR(mode)

Возвращает ненулевое значение, если режим соответствует типу «двери».

Добавлена в версии 3.4.

stat.S_ISPORT(mode)

Возвращает ненулевое значение, если режим соответствует порту событий.

Добавлена в версии 3.4.

stat.S_ISWHT(mode)

Возвращает ненулевое значение, если режим соответствует файлу «whiteout».

Добавлена в версии 3.4.

Определены две дополнительные функции для более общего управления режимом файла:

stat.S_IMODE(mode)

Возвращает часть режима файла, которая может быть установлена с помощью os.chmod() — это биты разрешений файла, а также биты «sticky», «set-group-id» и «set-user-id» (если они поддерживаются системой).

stat.S_IFMT(mode)

Возвращает часть режима файла, которая описывает тип файла (используется функциями S_IS*() выше).

Обычно для проверки типа файла используются функции os.path.is*(); данные функции полезны, когда требуется выполнить несколько проверок для одного и того же файла, чтобы избежать издержек вызова stat() системного вызова для каждой проверки. Они также полезны при проверке информации о файле, не обрабатываемой os.path, например, для проверки устройств блочного и символьного типов.

Пример:

import os, sys
from stat import *

def walktree(top, callback):
    '''recursively descend the directory tree rooted at top,
       calling the callback function for each regular file'''

    for f in os.listdir(top):
        pathname = os.path.join(top, f)
        mode = os.lstat(pathname).st_mode
        if S_ISDIR(mode):
            # It's a directory, recurse into it
            walktree(pathname, callback)
        elif S_ISREG(mode):
            # It's a file, call the callback function
            callback(pathname)
        else:
            # Unknown file type, print a message
            print('Skipping %s' % pathname)

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

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

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

stat.filemode(mode)

Преобразует режим файла в строку формата «-rwxrwxrwx».

Добавлена в версии 3.3.

Изменено в версии 3.4: Функция поддерживает S_IFDOOR, S_IFPORT и S_IFWHT.

Все переменные ниже — это просто символические индексы в кортеже из 10 элементов, возвращаемом os.stat(), os.fstat() или os.lstat().

stat.ST_MODE

Режим защиты узла.

stat.ST_INO

Номер узла.

stat.ST_DEV

Устройство, на котором расположен узел.

stat.ST_NLINK

Количество ссылок на узел.

stat.ST_UID

Идентификатор пользователя владельца.

stat.ST_GID

Идентификатор группы владельца.

stat.ST_SIZE

Размер обычного файла в байтах; количество ожидаемых данных в некоторых специальных файлах.

stat.ST_ATIME

Время последнего доступа.

stat.ST_MTIME

Время последней модификации.

stat.ST_CTIME

Поле «ctime», возвращаемое операционной системой. В некоторых системах (например, Unix) это время последнего изменения метаданных, а в других (например, Windows) — время создания (см. документацию платформы для получения подробностей).

Интерпретация «размера файла» зависит от типа файла. Для обычных файлов это размер файла в байтах. Для FIFO и сокетов в большинстве версий Unix (включая Linux), «размер» — это количество байтов, ожидающих чтения во время вызова os.stat(), os.fstat() или os.lstat(); это может быть полезно, особенно для опроса одного из этих специальных файлов после неблокирующего открытия. Значение поля размера для других устройств символьного и блочного типов зависит от реализации подлежащего системного вызова.

Переменные ниже определяют флаги, используемые в поле ST_MODE.

Использование приведенных выше функций более переносимо, чем использование первого набора флагов:

stat.S_IFSOCK

Сокет.

stat.S_IFLNK

Символическая ссылка.

stat.S_IFREG

Обычный файл.

stat.S_IFBLK

Блочное устройство.

stat.S_IFDIR

Каталог.

stat.S_IFCHR

Устройство символьного типа.

stat.S_IFIFO

FIFO.

stat.S_IFDOOR

«Дверь».

Добавлена в версии 3.4.

stat.S_IFPORT

Порт событий.

Добавлена в версии 3.4.

stat.S_IFWHT

«Whiteout».

Добавлена в версии 3.4.

Примечание

S_IFDOOR, S_IFPORT или S_IFWHT определены как 0, если платформа не поддерживает соответствующие типы файлов.

Следующие флаги также могут быть использованы в аргументе mode функции os.chmod():

stat.S_ISUID

Бит установки UID.

END_OF_DOCUMENT_MARKER
stat.S_ISGID

Флаг установления группы. Этот флаг имеет несколько специальных применений. Для каталога он указывает, что для него следует использовать семантику BSD: файлы, созданные в этом каталоге, наследуют идентификатор группы от каталога, а не от эффективного идентификатора группы процесса, создавшего файл, и каталоги, созданные в этом каталоге, также получат S_ISGID флаг. Для файла, у которого не установлен флаг выполнения для группы (S_IXGRP), флаг установления группы указывает на принудительное блокирование файла/записи (см. также S_ENFMT).

stat.S_ISVTX

Флаг "липкая" битовая метка. Если этот флаг установлен для каталога, это означает, что файл в этом каталоге может быть переименован или удалён только владельцем файла, владельцем каталога или привилегированным процессом.

stat.S_IRWXU

Маска разрешений для владельца файла.

stat.S_IRUSR

Владелец имеет право на чтение.

stat.S_IWUSR

Владелец имеет право на запись.

stat.S_IXUSR

Владелец имеет право на выполнение.

stat.S_IRWXG

Маска разрешений для группы.

stat.S_IRGRP

Группа имеет право на чтение.

stat.S_IWGRP

Группа имеет право на запись.

stat.S_IXGRP

Группа имеет право на выполнение.

stat.S_IRWXO

Маска разрешений для других (не в группе).

stat.S_IROTH

Другие имеют право на чтение.

stat.S_IWOTH

Другие имеют право на запись.

stat.S_IXOTH

Другие имеют право на выполнение.

stat.S_ENFMT

Принудительное применение блокировок файлов системы V. Этот флаг совместно используется с S_ISGID: принудительное блокирование файла/записи применяется к файлам, у которых не установлен флаг выполнения для группы (S_IXGRP).

stat.S_IREAD

Синоним Unix V7 для S_IRUSR.

stat.S_IWRITE

Синоним Unix V7 для S_IWUSR.

stat.S_IEXEC

Синоним Unix V7 для S_IXUSR.

Следующие флаги могут быть использованы в аргументе flags функции os.chflags():

stat.UF_NODUMP

Не дублировать файл.

stat.UF_IMMUTABLE

Файл не может быть изменён.

stat.UF_APPEND

Файл может быть только добавлен.

stat.UF_OPAQUE

Каталог непрозрачен при просмотре через стек объединения.

stat.UF_NOUNLINK

Файл не может быть переименован или удалён.

stat.UF_COMPRESSED

Файл хранится в сжатом формате (macOS 10.6+).

stat.UF_HIDDEN

Файл не должен отображаться в графическом интерфейсе (macOS 10.5+).

stat.SF_ARCHIVED

Файл может быть архивирован.

stat.SF_IMMUTABLE

Файл не может быть изменён.

stat.SF_APPEND

Файл может быть только добавлен.

stat.SF_NOUNLINK

Файл не может быть переименован или удалён.

stat.SF_SNAPSHOT

Файл — файл снимка.

См. страницу руководства системы *BSD или macOS chflags(2) для получения дополнительной информации.

В Windows доступны следующие константы атрибутов файлов для проверки битов в элементе st_file_attributes возвращаемом функцией os.stat(). Подробнее о значении этих констант см. в документации API Windows .

stat.FILE_ATTRIBUTE_ARCHIVE
stat.FILE_ATTRIBUTE_COMPRESSED
stat.FILE_ATTRIBUTE_DEVICE
stat.FILE_ATTRIBUTE_DIRECTORY
stat.FILE_ATTRIBUTE_ENCRYPTED
stat.FILE_ATTRIBUTE_HIDDEN
stat.FILE_ATTRIBUTE_INTEGRITY_STREAM
stat.FILE_ATTRIBUTE_NORMAL
stat.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
stat.FILE_ATTRIBUTE_NO_SCRUB_DATA
stat.FILE_ATTRIBUTE_OFFLINE
stat.FILE_ATTRIBUTE_READONLY
stat.FILE_ATTRIBUTE_REPARSE_POINT
stat.FILE_ATTRIBUTE_SPARSE_FILE
stat.FILE_ATTRIBUTE_SYSTEM
stat.FILE_ATTRIBUTE_TEMPORARY
stat.FILE_ATTRIBUTE_VIRTUAL

Добавлен в версии 3.5.

В Windows доступны следующие константы для сравнения с элементом st_reparse_tag возвращаемым функцией os.lstat(). Это известные константы, но список не исчерпывающий.

stat.IO_REPARSE_TAG_SYMLINK
stat.IO_REPARSE_TAG_MOUNT_POINT
stat.IO_REPARSE_TAG_APPEXECLINK

Добавлен в версии 3.8.

© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/stat.html

Spec-Zone.ru

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