#!/usr/bin/env python

import os

def rename_folders_and_files(directory):
    # First, rename files and directories in subdirectories
    for root, dirs, files in os.walk(directory):
        for d in dirs:
            rename_folders_and_files(os.path.join(root, d))

    # Then, rename files in the current directory
    for root, dirs, files in os.walk(directory):
        for f in files:
            old_path = os.path.join(root, f)
            new_path = os.path.join(root, f.lower().replace(" ", "_"))
            os.rename(old_path, new_path)

    # Finally, rename directories in the current directory
    for root, dirs, _ in os.walk(directory):
        for d in dirs:
            old_path = os.path.join(root, d)
            new_path = os.path.join(root, d.lower().replace(" ", "_"))
            os.rename(old_path, new_path)

if __name__ == "__main__":
    root_directory = os.getcwd()
    confirmation = input(f"Are you sure you want to rename all files and folders in '{root_directory}'? (yes/no): ")
    
    if confirmation.lower() == 'yes':
        rename_folders_and_files(root_directory)
        print("Renaming completed.")
    else:
        print("Operation canceled.")

