Source code for cgl.core.utils.folder_renamer

"""
CLI for renaming folders 
"""
import os
import sys

import re

[docs] def remove_sequence_from_folder(folder_path): folder_name = os.path.basename(folder_path) parts = folder_name.split("_") if len(parts) >= 2: new_folder_name = parts[1] new_folder_path = os.path.join(os.path.dirname(folder_path), new_folder_name) os.rename(folder_path, new_folder_path) print(f"Renamed folder from '{folder_name}' to '{new_folder_name}'")
[docs] def rename_folder_with_sequence(folder_path, sequence_name): folder_name = os.path.basename(folder_path) parts = folder_name.split("_") if len(parts) >= 2: new_folder_name = sequence_name + "_" + "_".join(parts[1:]) new_folder_path = os.path.join(os.path.dirname(folder_path), new_folder_name) os.rename(folder_path, new_folder_path) print(f"Renamed folder from '{folder_name}' to '{new_folder_name}'") else: shot_name = folder_path.split("/")[-1] print(f"Folder '{folder_name}' does not contain a sequence prefix.") shot_name = f"_{shot_name}" new_folder_path = re.sub(r"([^/]+)$", f"{sequence_name}{shot_name}", folder_path) os.rename(folder_path, new_folder_path) print(f"Renamed '{folder_path}' to '{new_folder_path}'")
[docs] def rename_folders(folder_path): # Get a list of folders within the specified folder folders = next(os.walk(folder_path))[1] # Define the folder name replacements replacements = { "audio": "aud", "anim": "anm", "lighting": "lgt", "light": "lgt" } # Rename specific folders for folder in folders: subfolder_path = os.path.join(folder_path, folder) new_name = replacements.get(folder) if new_name and os.path.isdir(subfolder_path): new_folder_path = os.path.join(os.path.dirname(subfolder_path), new_name) os.rename(subfolder_path, new_folder_path) print(f"Renamed '{folder}' to '{new_name}'") else: print(f"Skipped '{subfolder_path}'")
if __name__ == "__main__": # Check if a folder path is provided as a command-line argument if len(sys.argv) > 1: folder_path = sys.argv[1] # Check if the folder exists if os.path.isdir(folder_path): # Rename folders within the specified folder rename_folders(folder_path) else: print("Folder not found.") else: print("Please provide a folder path as a command-line argument.")