API · Python

Python os.stat_result Class

The os.stat_result class represents a state of a file descriptor.

On this page

The stat_result class belongs to the os module. The os is a built-in module in Python programming language that offers various utilities to interact with the operating system.

The stat_result class represents a state of a file descriptor. Simply put, it stores details about a file such as last update time, creation time, owner’s name, file mode and type, etc.

This article will discuss the os.stat_result class in detail, along with some examples.

Syntax

os.stat_result

Parameters

Since it is a class, it does not have any parameters.

Returns

Since it is a class, it does not return anything.

Attributes

Attribute Platform Explanation
st_mode All The file type and the file mode bits or permission details.
st_ino All The inode number on Unix systems and the file index on Windows systems.
st_dev All The identifier of the device on which a file lives.
st_nlink All The number of hard links.
st_uid All The user identifier of the file owner.
st_gid All The group identifier of the file owner.
st_size All The file size in bytes. In the case of a symbolic link, it is the length of the file system path it stores.
st_atime All The most recent access time in seconds.
st_mtime All The time of the most recent modification in seconds.
st_ctime All The time of most recent metadata modification in seconds on Unix systems and the time of creation on Windows systems in seconds.
st_atime_ns All The time of most recent access in nanoseconds.
st_mtime_ns All The time of the most recent modification in nanoseconds.
st_ctime_ns All The time of most recent metadata modification in nanoseconds on Unix systems and the time of creation on Windows systems in nanoseconds.
st_blocks Unix The number of 512-byte blocks allocated for the file. If the file has holes, it might be smaller than st_size / 512.
st_blksize Unix The preferred block size for efficient file system input-output operations. Note that writing to a file in small chunks may cause inefficient read-modify-rewrite.
st_rdev Unix The type of device, in case of an inode device.
st_flags Unix The user-defined flags for the file.
st_gen Unix The file generation number.
st_birthtime Unix The time of creating the file.
st_fstype Solaris A string that uniquely identifies the type of file system that stores the file.
st_rsize macOS The real size of the file.
st_creator macOS The creator of the file.
st_type macOS The file type.
st_file_attributes Windows The dwFileAttributes member of the BY_HANDLE_FILE_INFORMATION structure returned by the GetFileInformationByHandle() method.
st_reparse_tag Windows When the st_file_attributes has the FILE_ATTRIBUTE_REPARSE_POINT set, this attribute stores the tag identifying the type of reparse point.

Example: Status of a File

Code Snippet:

import os

path = os.getcwd() + "/file.txt"
fd = os.open(path, os.O_RDONLY)
print(os.stat(fd))

Output:

os.stat_result(
    st_mode=33206,
    st_ino=1407374884353234,
    st_dev=503946240,
    st_nlink=1,
    st_uid=0,
    st_gid=0,
    st_size=242,
    st_atime=1662906051,
    st_mtime=1662906051,
    st_ctime=1662906023
)

First, create a file file.txt in the current working directory and add some random data. The Python code first defines a path to this file, and using the os.open() method, it opens the file and creates a file descriptor.

Next, using the os.stat() and the file descriptor, it gets the status of the file and prints the output. The os.stat() method returns a stat_result object.

Note that, instead of os.stat(), one can also use os.fstat() method because it also gets the same result.