#!/usr/bin/env python3 """ Find the largest files in a directory tree. Usage: python3 largest_files.py [directory] [count] """ import os import sys from pathlib import Path def find_largest_files(directory=".", count=10): """Find the N largest files in a directory tree.""" largest = [] directory = Path(directory) for path in directory.rglob("*"): if path.is_file(): try: size = path.stat().st_size largest.append((path, size)) except (OSError, PermissionError): continue largest.sort(key=lambda x: x[1], reverse=True) return largest[:count] if __name__ == "__main__": dir_arg = sys.argv[1] if len(sys.argv) > 1 else "." count_arg = int(sys.argv[2]) if len(sys.argv) > 2 else 10 results = find_largest_files(dir_arg, count_arg) print(f"Top {len(results)} largest files in {dir_arg}:") print("-" * 60) for path, size in results: print(f"{size:>12,} bytes {path}")