How to check the size of a file using Python?

By | May 8, 2021

Every file on the computer occupies some space in the memory, although you can just right-click on the file and check its disk size by looking at its properties. But it would be cool if you know how to calculate the file size using Python code.

In this Python tutorial, you will learn how to check the size of a file in Python using Python standard Path module. Before we dive into the program let’s discuss the Python module that we will be using in this tutorial.

Vamware

How to check the size of a file in Python

Required module

Python pathlib module

As the module name suggests, the Python pathlib is a filesystem module that can work with different file systems irrespective of the operating system.

In this tutorial, we will use pathlib Path class to find the size states of a file. And using logic we will convert that size into a human-readable, bytes format.

The pathlib module comes under the Python standard module suits so we do not need to install it separately.

Now we are all set with our required module, let’s open your best Python IDE or text editor and start coding along.

Python program to find the file size.

Let’s begin with importing the Path class from pathlib moduel.

from pathlib import Path

Now let’s define a Python function byte_converter() that accept file size in bytes and convert it into corresponding KB, MB, GB or TB.

def byte_converter(size):
    power = 2**10
    n = 0
    size_format = {0 : '', 1: 'KB', 2: 'MB', 3: 'GB', 4: 'TB'}
    while size > power:
        size /= power
        n += 1
    return str(round(size,2)) +" "+ size_format[n]

The above code is the basic logic of byte converter into readable size formats.

Now let’s define the find_size function that will find the size of the file.

def find_size(file):
    file_stat =Path(file).stat()

    print(byte_converter(file_stat.st_size))

The Path(file).stat() function will return an object containing different properties of the file.

The st_size property will return the file size in bytes.

The byte_converter() function will convert the file bytes size into a more readable size format.

Now let’s define the file Path which size we want to find.

file =r"C:\Users\tsmehra\Videos\Captures\video.mp4"

As you can see that I have specified the file path as a raw string, by putting the r prefix before the string. The raw string makes sure that \ symbol treated as a character instead of an escape sequence.

Now call the function find_size() and pass the file as a parameter.

Put all the code together and execute.

#Python program to find the size of a file

from pathlib import Path

def byte_converter(size):
    power = 2**10
    n = 0
    size_format = {0 : '', 1: 'KB', 2: 'MB', 3: 'GB', 4: 'TB'}
    while size > power:
        size /= power
        n += 1
    return str(round(size,2)) +" "+ size_format[n]

def find_size(file):
    file_stat =Path(file).stat()
    print(f"The size of the file {file} is: ",)
    print(byte_converter(file_stat.st_size))


file =r"C:\Users\tsmehra\Videos\Captures\video.mp4"

find_size(file)

Output

The size of the file C:\Users\tsmehra\Videos\Captures\video.mp4 is: 
1.06 GB

Conclusion

In this Python tutorial, we discussed how can we use the Python standard pathlib module to find the size of a file. Using the pathlib module we can do many file management tasks like finding the file creation time, uid, gid, alter time, etc.

If you want to know more about Python pathlib module please check out its official documentation.

Leave a Reply

Your email address will not be published. Required fields are marked *