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.")