Let’s see how to get the size of a directory in python.

How to get the size of a Directory in Python:

The Python os package gives the flexibility to access the file/directory structure so that we can walk through each file in a directory and get the size of them.

  • os.walk() function takes the directory path as a parameter and it walks through the directory.
  • os.path.getsize() function takes the file name as a parameter and gives the size of it.

So the sum of each file size in a directory gives us the total size of the directory.

get_directory_size.py
import os
import sys

if __name__ == '__main__':
    try:
        directory = input("Enter the directory which you want to get the size : ")
    except IndexError:
        sys.exit("Invalid directory")

    dir_size = 0
    readable_sizes = {'B': 1,
                 'KB': float(1) / 1024,
                 'MB': float(1) / (1024 * 1024),
                 'GB': float(1) / (1024 * 1024 * 1024)
                      }
    for (path, dirs, files) in os.walk(directory):
        for file in files:
            filename = os.path.join(path, file)
            dir_size += os.path.getsize(filename)
    readable_sizes_list = [str(round(readable_sizes[key] * dir_size, 2)) + " " + key for key in readable_sizes]

    if dir_size == 0:
        print("File Empty")
    else:
        for units in sorted(readable_sizes_list)[::-1]:
            print("Folder Size: " + units)

Output:

Enter the directory which you want to get the size : C:\Users\cgoka\Desktop\mylibs
Folder Size: 733160003 B
Folder Size: 715976.57 KB
Folder Size: 699.2 MB
Folder Size: 0.68 GB

References:

Happy Learning 🙂