Find Biggest File in Directory Tree


The following cross-platform Python script allows you to search for the biggest file within a directory and all its subfolders (the search is recursive). The directory path must be passed as the first argument when invoking the script. Additionally, a second argument indicating a file extension can optionally be passed to limit the search.

import os
import pathlib
import sys
target_path = pathlib.Path(sys.argv[1])
    target_ext = sys.argv[2]
except IndexError:
    target_ext = None
current_max_size = 0
# Recursively iterate over the target directory tree.
for dirpath, dirnames, filenames in os.walk(target_path):
    for filename in filenames:
        # Ignore files that lack the specified target extension, if any.
        if (target_ext is not None and
            not filename.lower().endswith(target_ext.lower())):
        p = pathlib.Path(dirpath, filename)
        if (size := p.stat().st_size) > current_max_size:
            # Update the variables that record the biggest file
            # found up to now.
            current_max_size = size
            biggest_file = p
            print("Biggest file found up to now:", filename)
print(f"Final biggest file: {biggest_file.absolute()} "
    f"({current_max_size // 1024} KB)")

For example, to find the biggest file inside C:\Python310 and its subfolders, run in the terminal:

py C:\Python310

To find the largest Python (.py) file:

py C:\Python310 .py

On macOS and Linux distributions, use python or python3 instead of py.