Python os stat()

The os.stat function in Python's os module retrieves the status of a specified path. This function returns an os.stat_result object containing various attributes about the file or directory, such as its size, permissions, and modification time.

Table of Contents

  1. Introduction
  2. os.stat Function Syntax
  3. Examples
    • Basic Usage
    • Accessing Specific Attributes
  4. Real-World Use Case
  5. Conclusion

Introduction

The os.stat function in Python's os module retrieves information about a specified file or directory. The returned os.stat_result object contains various attributes, including the size, permissions, and modification times, making it useful for file and directory management tasks.

os.stat Function Syntax

Here is how you use the os.stat function:

import os

stat_info = os.stat(path)

Parameters:

  • path: The path to the file or directory.

Returns:

  • An os.stat_result object containing information about the file or directory.

Examples

Basic Usage

Here is an example of how to use the os.stat function to retrieve information about a file.

Example

import os

# Creating a sample file
file_path = 'sample.txt'
with open(file_path, 'w') as file:
    file.write("This is a sample file.")

# Getting the status of the file
stat_info = os.stat(file_path)
print(f"File size: {stat_info.st_size} bytes")
print(f"Last modified: {stat_info.st_mtime}")
print(f"Permissions: {oct(stat_info.st_mode)}")

Output:

File size: 20 bytes
Last modified: 1627829952.0
Permissions: 0o100644

Accessing Specific Attributes

This example demonstrates how to access specific attributes of the os.stat_result object.

Example

import os

# Getting the status of a file
file_path = 'sample.txt'
stat_info = os.stat(file_path)

# Accessing specific attributes
file_size = stat_info.st_size
last_modified = stat_info.st_mtime
permissions = stat_info.st_mode

print(f"File size: {file_size} bytes")
print(f"Last modified: {last_modified}")
print(f"Permissions: {oct(permissions)}")

Output:

File size: 20 bytes
Last modified: 1627829952.0
Permissions: 0o100644

Common Attributes in os.stat_result

  • st_mode: File mode (permissions).
  • st_ino: Inode number.
  • st_dev: Device ID.
  • st_nlink: Number of hard links.
  • st_uid: User ID of the owner.
  • st_gid: Group ID of the owner.
  • st_size: Size of the file in bytes.
  • st_atime: Last access time.
  • st_mtime: Last modification time.
  • st_ctime: Last metadata change time on Unix or creation time on Windows.

Real-World Use Case

Checking File Attributes

In real-world applications, the os.stat function can be used to check file attributes before performing operations such as backups, modifications, or deletions.

Example

import os
import time

def check_file_attributes(file_path):
    try:
        stat_info = os.stat(file_path)
        print(f"File size: {stat_info.st_size} bytes")
        print(f"Last modified: {time.ctime(stat_info.st_mtime)}")
        print(f"Permissions: {oct(stat_info.st_mode)}")
    except FileNotFoundError:
        print(f"File '{file_path}' does not exist.")
    except OSError as e:
        print(f"Error: {e}")

# Example usage
file_path = 'sample.txt'
check_file_attributes(file_path)

Output:

File size: 20 bytes
Last modified: Wed Jul 28 10:12:32 2021
Permissions: 0o100644

Conclusion

The os.stat function in Python's os module retrieves the status of a specified path, returning an os.stat_result object containing various attributes about the file or directory. This function is useful for managing files and directories by providing essential information such as size, permissions, and modification times. Proper error handling should be implemented to manage cases where the specified path does not exist or is not accessible.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare