Python's os module provides a way of interacting with the operating system, and it includes various methods to work with files and directories. Among these, the os.stat() method stands out as a powerful tool for retrieving detailed information about a file or a directory. This article delves into the intricacies of the os.stat() method, exploring its syntax, the attributes it returns, and practical applications with code examples.
The os.stat() method is used to perform a stat system call on the specified path. It returns an os.stat_result object, which contains several attributes representing the status of the specified path.
Syntax
The os.stat_result object returned by os.stat() contains the following attributes:
The st_mode attribute contains both the file type and the file mode (permissions). It can be interpreted using the stat module, which provides constants and functions for interpreting the st_mode value.
Output:
It's a regular file. Owner has read permission. Owner has write permission.
The st_ino attribute represents the inode number, which is a unique identifier for the file within the filesystem.
Output:
Inode number: 12345678
The st_dev attribute represents the device ID on which the file resides. This can be useful in environments where filesystems are spread across multiple devices.
Output:
Device ID: 2049
The st_nlink attribute indicates the number of hard links pointing to the file.
Output:
Number of hard links: 1
The st_uid and st_gid attributes represent the user ID and group ID of the file's owner, respectively.
Output:
User ID: 1000, Group ID: 1000
The st_size attribute shows the size of the file in bytes.
Output:
File size: 12345 bytes
These attributes represent the times of the last access, modification, and metadata change (or creation on Windows), respectively. The values are given as seconds since the epoch (January 1, 1970).
Output:
Last access time: Mon May 20 14:22:31 2024 Last modification time: Mon May 20 14:20:10 2024 Last metadata change time: Mon May 20 14:20:10 2024
Example 1: File Metadata
You can use os.stat() to gather and print metadata for a file.
Output:
File: example.txt Size: 12345 bytes Device: 2049 Inode: 12345678 Mode: 33206 Number of links: 1 User ID: 1000 Group ID: 1000 Last access time: Mon May 20 14:22:31 2024 Last modification time: Mon May 20 14:20:10 2024 Last metadata change time: Mon May 20 14:20:10 2024
Example 2: Checking File Permissions
You can check if a file has specific permissions.
Output:
Owner has read permission: Yes Owner has write permission: Yes Owner has execute permission: No
Example 3: File Age
You can determine the age of a file by comparing its last modification time to the current time.
Output:
File age: 3600 seconds
Example 4: Identifying Large Files
You can identify files larger than a certain size within a directory.
Output:
Large file: big_file.txt - Size: 2345678 bytes Large file: another_big_file.dat - Size: 3456789 bytes
When working with os.stat(), it's essential to handle potential errors, such as FileNotFoundError if the specified path does not exist.
Output:
File size: 12345 bytes
The os.stat() method in Python is a versatile tool for retrieving detailed information about files and directories. By understanding its attributes and knowing how to use them, you can perform various file system operations effectively. Whether you need to check file permissions, identify large files, or determine file ages, os.stat() provides a robust foundation for these tasks. Properly handling potential errors ensures your code remains resilient and reliable, making os.stat() an indispensable part of file handling in Python.
We request you to subscribe our newsletter for upcoming updates.

We deliver comprehensive tutorials, interview question-answers, MCQs, study materials on leading programming languages and web technologies like Data Science, MEAN/MERN full stack development, Python, Java, C++, C, HTML, React, Angular, PHP and much more to support your learning and career growth.
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India