import os from pathlib import Path def ensure_folder_exists(folder_path): """ Check if a folder exists and create it if it doesn't. Args: folder_path (str or Path): Path to the folder to check/create Returns: bool: True if folder was created, False if it already existed Raises: OSError: If folder creation fails due to permissions or other issues """ folder_path = Path(folder_path) if folder_path.exists(): if folder_path.is_dir(): return False # Folder already exists else: raise OSError(f"Path '{folder_path}' exists but is not a directory") try: folder_path.mkdir(parents=True, exist_ok=True) return True # Folder was created except OSError as e: raise OSError(f"Failed to create folder '{folder_path}': {e}") # Alternative simpler version using os module def ensure_folder_exists_simple(folder_path): """ Simple version using os.makedirs with exist_ok parameter. Args: folder_path (str): Path to the folder to check/create """ os.makedirs(folder_path, exist_ok=True) # Usage examples if __name__ == "__main__": # Example 1: Create a single folder folder_created = ensure_folder_exists("my_new_folder") print(f"Folder created: {folder_created}") # Example 2: Create nested folders ensure_folder_exists("data/processed/results") # Example 3: Using the simple version ensure_folder_exists_simple("logs/2024") # Example 4: Using with absolute path import tempfile temp_dir = tempfile.gettempdir() ensure_folder_exists(os.path.join(temp_dir, "my_app", "cache"))