os.stat_result

class os.stat_result

Объект, атрибуты которого примерно соответствуют членам структуры stat. Он используется для результатов os.stat (), os.fstat () и os.lstat ().

Атрибуты:

  • st_mode - режим файла: тип файла и биты режима файла (разрешения)

  • st_ino - зависит от платформы, но если не равен нулю, однозначно идентифицирует файл для данного значения st_dev. Обычно:

    • номер inode в Unix

    • индекс файла в Windows

  • st_dev - идентификатор устройства, на котором находится этот файл

  • st_nlink - количество жестких ссылок

  • st_uid - идентификатор пользователя владельца файла

  • st_gid - идентификатор группы владельца файла

  • st_size - размер файла в байтах, если это обычный файл или символическая ссылка. Размер символической ссылки - это длина содержащегося в ней имени пути без завершающего нулевого байта.

Отметки времени:

  • st_atime - время последнего доступа в секундах

  • st_mtime - время последнего изменения содержимого в секундах

  • st_ctime - в зависимости от платформы:

    • время последнего изменения метаданных в Unix

    • время создания в Windows, выраженное в секундах

  • st_atime_ns - время последнего доступа, выраженное в наносекундах в виде целого числа

  • st_mtime_ns - время последней модификации содержимого, выраженное в наносекундах в виде целого числа

  • st_ctime_ns - в зависимости от платформы:

    • время последнего изменения метаданных в Unix

    • время создания в Windows, выраженное в наносекундах в виде целого числа

Точное значение и разрешение атрибутов st_atime, st_mtime и st_ctime зависят от операционной системы и файловой системы. Например, в системах Windows, использующих файловые системы FAT или FAT32, st_mtime имеет разрешение 2 секунды, а st_atime имеет разрешение только 1 день. Подробности см. в документации по вашей операционной системе.

Точно так же и для наносекундных атрибутов, хотя st_atime_ns, st_mtime_ns и st_ctime_ns всегда выражаются в наносекундах, многие системы не обеспечивают наносекундную точность. В системах, которые обеспечивают точность до наносекунд, объект с плавающей запятой, используемый для хранения st_atime, st_mtime и st_ctime, не может сохранить все это, и поэтому будет немного неточным. Если вам нужны точные отметки времени, вы всегда должны использовать st_atime_ns, st_mtime_ns и st_ctime_ns.

В некоторых системах Unix (например, Linux) также могут быть доступны следующие атрибуты:

  • st_blocks - количество 512-байтовых блоков, выделенных для файла. Это может быть меньше st_size / 512, если в файле есть пустые пространства

  • st_blksize - «предпочтительный» размер блока для эффективного ввода-вывода файловой системы. Запись в файл небольшими порциями может вызвать неэффективное чтение-изменение-перезапись

  • st_rdev - тип устройства, если это устройство является inode

  • st_flags - пользовательские флаги для файла

В других системах Unix (таких как FreeBSD) могут быть доступны следующие атрибуты (но могут быть заполнены только в том случае, если root пытается их использовать):

  • st_gen - номер поколения файла

  • st_birthtime - время создания файла

В Solaris и производных версиях также могут быть доступны следующие атрибуты:

  • st_fstype - строка, которая однозначно определяет тип файловой системы, содержащей файл

В системах Mac OS также могут быть доступны следующие атрибуты:

  • st_rsize - реальный размер файла

  • st_creator - создатель файла

  • st_type - тип файла

В системах Windows также доступны следующие атрибуты:

  • st_file_attributes - атрибуты файлов Windows: член dwFileAttributes структуры BY_HANDLE_FILE_INFORMATION, возвращаемый GetFileInformationByHandle (). См. константы FILE_ATTRIBUTE_* в модуле stat

  • st_reparse_tag - когда st_file_attributes имеет установленный FILE_ATTRIBUTE_REPARSE_POINT, это поле содержит тег, определяющий тип точки повторной обработки. См. константы IO_REPARSE_TAG_* в модуле stat

Стандартный модуль stat определяет функции и константы, которые полезны для извлечения информации из структуры stat. (В Windows некоторые элементы заполнены фиктивными значениями.)

Для обратной совместимости экземпляр stat_result также доступен как кортеж из не менее 10 целых чисел, дающих наиболее важные (и переносимые) члены структуры stat, в порядке st_mode, st_ino, st_dev, st_nlink, st_uid, st_gid, st_size, st_atime, st_mtime, st_ctime. Некоторые реализации могут добавить больше элементов в конце. Для совместимости со старыми версиями Python доступ к stat_result как кортежу всегда возвращает целые числа.

Новое в версии 3.3: добавлены члены st_atime_ns, st_mtime_ns и st_ctime_ns.

Новое в версии 3.5: добавлен член st_file_attributes в Windows.

Изменено в версии 3.5: Windows теперь возвращает индекс файла как st_ino, если он доступен.

Новое в версии 3.7: Добавлен член st_fstype в Solaris и ее производные ОС.

Новое в версии 3.8: Добавлен член st_reparse_tag в Windows.

Изменено в версии 3.8: В Windows член st_mode теперь идентифицирует специальные файлы как S_IFCHR, S_IFIFO или S_IFBLK в зависимости от ситуации.

Last updated