How to get stat of a file using Python?


We have to realize that in the world of Python programming, obtaining file statistics plays a critical role in processing and manipulating files effectively. It does not matter if you are a novice or an experienced coder; this article will surely guide you through the process of retrieving file stats using Python. By taking a deep dive into the intricacies of file handling and unleashing the potential of Python's built-in functions, we will empower you with the knowledge to effortlessly access valuable statistical data about your files.

Understanding File Stats

Before we begin exploring the code examples, let us make an attempt at understanding what file stats mean and how they are useful. File stats encompass a range of data linked with a file, such as its size, permissions, timestamps, and more. Retrieving these stats can provide you with valuable insights and understanding that can help you in carrying out various file-related operations and in taking data-based decisions.

Basic File Stats

In this first code example, we will learn about how to obtain basic file stats using Python. In this particular code, we start by importing the os module; this provides functions for working with the operating system. We provide the file_path variable with the path to the file for which we wish to retrieve the stats. Using the os.stat() function, we get a named tuple object, file_stats, that contains various file statistics. We then access different stats, such as the file size (st_size), last modified timestamp (st_mtime), and creation time (st_ctime). At the very end, we print the fetched file stats to gain insights into the file's properties.

Example

import os
# Specify the file path
file_path = '/path/to/your/file.txt'

# Get the file stats
file_stats = os.stat(file_path)

# Access individual stats
file_size = file_stats.st_size
last_modified = file_stats.st_mtime
creation_time = file_stats.st_ctime

# Print the file stats
print("File Size:", file_size, "bytes")
print("Last Modified:", last_modified)
print("Creation Time:", creation_time)

Output

For a certain file, the following can be the output.

File Size: 24 bytes
Last Modified: 1689518818.7932744
Creation Time: 1689518818.7932744

Converting Timestamps to Readable Format

In this next example, we focus on changing timestamps obtained from file stats into a format that is human-readable.

Here, we first see to it that the os module and the datetime module are imported; these modules provide classes for manipulating dates and times. We provide the file_path variable with the path to the file of interest. After getting the file stats using os.stat(), we gain access to the last modified timestamp (st_mtime). To transfom the timestamp into a readable format, we use the datetime.fromtimestamp() method, by passing the timestamp as an argument. By the application of the strftime() method, we format the timestamp into a string format. Finally, we print the formatted timestamp to present it in a user-friendly way.

Example

import os
from datetime import datetime


# Specify the file path
file_path = '/path/to/your/file.txt'

# Get the file stats
file_stats = os.stat(file_path)

# Access the last modified timestamp
last_modified = file_stats.st_mtime

# Convert the timestamp to a readable format
last_modified_str = datetime.fromtimestamp(last_modified).strftime("%Y-%m-%d %H:%M:%S")

# Print the formatted timestamp
print("Last Modified:", last_modified_str)

Output

For a certain file, the following output was obtained.

Last Modified: 2023-07-16 14:47:07

Checking File Accessibility

In this example, we'll explore ways of checking the accessibility of a file, to find if it can be read, written to, or executed.

In this code, we make use of the `os.access()` function to verify the accessibility of a file. We provide the `file_path` variable with the path to the file we wish to analyze. By passing on different constants (`os.R_OK`, `os.W_OK`, `os.X_OK`) as the second argument to `os.access()`function, we check if the file has read, write, or execute permissions, respectively. It is found that the function returns `True` if the file has the given access permission and `False` otherwise. We print the results to show the accessibility status of the file.

Example

import os

# Specify the file path
file_path = '/path/to/your/file.txt'

# Check file accessibility
is_readable = os.access(file_path, os.R_OK

)
is_writable = os.access(file_path, os.W_OK)
is_executable = os.access(file_path, os.X_OK)

#Print the results

print("Read Access:", is_readable)
print("Write Access:", is_writable)
print("Execute Access:", is_executable)

Output

For a certain file, the following was the output.

Read Access: True
Write Access: True
Execute Access: False

Checking if a File Exists

In this code example, we go on determine if a file exists or not at a given path using Python.

In this snippet, we utilize the os.path.exists() function to verify if a file exists at a certain path. We pass on the file_path variable as an argument to the function, and it outputs True if the file exists and False otherwise. Depending upon the result, we print a corresponding message to indicate whether the file exists or not.

Example

import os

# Specify the file path
file_path = '/path/to/your/file.txt'

# Check if the file exists
file_exists = os.path.exists(file_path)

# Print the result


if file_exists:
    print("File exists!")
else:
    print("File does not exist.")

Output

For a certain file, the following was the output.

File exists!

Determining File Type

We, in this code example, show how to determine the type of a file using Python.

In this code, we utilize the os module to find the type of a file defined by the file_path variable. By making use of the os.path.splitext() function, we extract the file extension from the path. The file extension represents the type of file, such as .txt for text files or .jpg for image files. We gain access to the extension by selecting the second element of the resulting tuple. Lastly, we print the file type found.

Example

import os

# Specify the file path
file_path = '/path/to/your/file.txt'

# Get the file type
file_type = os.path.splitext(file_path)[1]

# Print the file type
print("File Type:", file_type)

Output

For a certain file, the following was the output.

File Type: .txt

Obtaining File Permissions

Let's explore another code example that showcases how to retrieve the file permissions using Python.

In this code snippet, we import the os module and the stat module, which provides constants for interpreting file permissions. After specifying the file_path variable with the path to the file, we use os.stat() to retrieve the file stats. By applying the bitwise AND operation (&) with stat.S_IRWXU (representing the permissions for the file owner), we extract the file permissions. The oct() function converts the permissions to an octal representation for readability. Finally, we print the obtained file permissions.

Example

import os
import stat

# Specify the file path
file_path = '/path/to/your/file.txt'

# Get the file permissions
file_permissions = oct(os.stat(file_path).st_mode & stat.S_IRWXU)

# Print the file permissions
print("File Permissions:", file_permissions)

Output

For a certain file, the following was the output.

File Permissions: 0o600

In this comprehensive article, we set out on a journey through the realm of file statistics in Python. By leveraging the power of Python's built-in functions and modules, we explored various aspects of file handling, including obtaining basic file stats, converting timestamps, checking file accessibility, and determining file existence. Armed with this knowledge, you now have the tools to dive deep into the depths of file manipulation, empowering you to make informed decisions and perform precise operations on your files. It must be noted that the power of Python lies not only in its simplicity but also in its versatility to handle file-related tasks with ease. You need to embrace the possibilities, unlock new horizons, and let your Python coding endeavors thrive.

By now you must have realized that understanding file stats is essential in effectively managing and manipulating files within your Python projects. By putting to use the knowledge gained from this article, you possess a valuable skill set to tackle complex file operations, enhance your code's efficiency, and ensure the integrity and security of your data. So, harness the power of Python and embark on your journey to file manipulation mastery.

Updated on: 20-Jul-2023

518 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements