import os os.stat_result stat_info = os.stat(...)
Объект stat_result
модуля os
имеет атрибуты, которые примерно соответствуют членам структуры системного вызова stat
. Объект os.stat_result
является результатом выполнения таких функций, как os.stat()
, os.fstat()
и `os.lstat()'.
Для обратной совместимости экземпляр os.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
в виде кортежа всегда возвращает целые числа.
Стандартный модуль stat
определяет функции и константы, которые полезны для извлечения информации из структуры системного вызова stat
. В Windows некоторые элементы заполнены фиктивными значениями.
os.stat_result
:stat_info.st_mode
:Режим файла: биты типа файла и разрешения файла.
stat_info.st_ino
:Зависит от платформы, но если не ноль, однозначно идентифицирует файл для данного значения st_dev
.
Как правило:
stat_info.st_dev
:Идентификатор устройства, на котором находится этот файл.
stat_info.st_nlink
:Количество жестких ссылок.
stat_info.st_uid
:Идентификатор пользователя владельца файла.
stat_info.st_gid
:Групповой идентификатор владельца файла.
stat_info.st_size
:Размер файла в байтах, если это обычный файл или символическая ссылка. Размер символической ссылки - это длина имени пути, которое он содержит, без завершающего нулевого байта.
timestamp
:stat_info.st_atime
:Время последнего доступа, выраженное в секундах.
stat_info.st_mtime
:Время последней модификации контента, выраженное в секундах.
stat_info.st_ctime
:Зависимость от платформы:
stat_info.st_atime_ns
:Время последнего доступа, выраженное в наносекундах как целое число.
stat_info.st_mtime_ns
:Время последней модификации контента, выраженное в наносекундах как целое число.
stat_info.st_ctime_ns
:Зависимость от платформы:
Обратите внимание, что точное значение и разрешение атрибутов st_atime
, st_mtime
и st_ctime
зависят от операционной системы и файловой системы. Например в системах Windows, использующих файловые системы FAT
или FAT32
, разрешение st_mtime
составляет 2 секунды, а разрешение st_atime
только 1 день. Дополнительные сведения смотрите в документации по операционной системе.
Аналогично st_time_ns
, st_mtime_ns
и st_ctime_ns
всегда выражаются в наносекундах, многие системы не обеспечивают наносекундной точности. В системах, которые действительно обеспечивают наносекундную точность, объект с плавающей точкой, используемый для хранения st_atime
, st_mtime
и st_ctime
не может сохранить все это и поэтому будет немного неточным. Если вам нужны точные временные метки, вы всегда должны использовать st_time_ns
, st_mtime_ns
и st_ctime_ns
.
stat_info.st_blocks
:Количество 512-байтовых блоков, выделенных для файла. Это может быть меньше, чем st_size/512
, когда файл имеет ошибки.
stat_info.st_blksize
:Предпочтительный размер блока для эффективного ввода/вывода файловой системы. Запись в файл небольшими порциями может привести к неэффективному чтению/изменению/перезаписи.
stat_info.st_rdev
:Тип устройства, если устройство inode.
stat_info.st_flags
:Пользовательские флаги для файла.
stat_info.st_gen
:Номер генерации файла.
stat_info.st_birthtime
:Время создания файла.
stat_info.st_fstype
:Строка, которая однозначно определяет тип файловой системы, в которой находится файл.
stat_info.st_rsize
:Реальный размер файла.
stat_info.st_creator
:Создатель файла.
stat_info.st_type
:Тип файла.
stat_info.st_file_attributes
:Атрибуты файла Windows: dwFileAttributes
член структуры BY_HANDLE_FILE_INFORMATION
, возвращаемой функцией GetFileInformationByHandle()
. Смотрите константы FILE_ATTRIBUTE_*
в модуле статистики.
stat_info.st_reparse_tag
:Когда st_file_attributes
имеет установленный FILE_ATTRIBUTE_REPARSE_POINT
, это поле содержит тег, идентифицирующий тип точки повторной обработки. Смотрите константы IO_REPARSE_TAG_*
в модуле статистики.
stat_result
:import os import time filename = 'stat_result.py' stat_info = os.stat(filename) print(f'os.stat({filename}):) print(' Size:', stat_info.st_size) print(' Permissions:', oct(stat_info.st_mode)) print(' Owner:', stat_info.st_uid) print(' Device:', stat_info.st_dev) print(' Created :', time.ctime(stat_info.st_ctime)) print(' Last modified:', time.ctime(stat_info.st_mtime)) print(' Last accessed:', time.ctime(stat_info.st_atime)) # os.stat(stat_result.py): # Size: 593 # Permissions: 0o100644 # Owner: 527 # Device: 16777218 # Created : Wen Mar 18 12:09:51 2020 # Last modified: Wen Mar 18 12:09:51 2020 # Last accessed: Wen Mar 18 12:33:19 2020