import os import re import sys def organize_files(base_path): # Expresión regular para buscar específicamente '(Disc X)' donde X es un único dígito disc_pattern = re.compile(r'\(Disc \d\)') print(f"Iniciando organización y renombrado de archivos en: {base_path}") # Obtiene una lista de archivos que coincidan exactamente con el formato esperado files = [f for f in os.listdir(base_path) if disc_pattern.search(f)] print(f"Archivos detectados con '(Disc X)': {len(files)} encontrados") # Diccionario para agrupar por nombre base groups = {} # Organiza los archivos según el nombre base (todo antes de "(Disc X)") for file in files: base_name = disc_pattern.split(file)[0].strip() if base_name not in groups: groups[base_name] = [] groups[base_name].append(file) print(f"Grupos formados: {len(groups)} grupos identificados") # Renombrar archivos y generar archivos .m3u for base_name, group_files in groups.items(): print(f"Procesando grupo: {base_name}") # Renombrar los archivos for file in sorted(group_files): # Ordenar los archivos por disco original_path = os.path.join(base_path, file) new_path = os.path.join(base_path, file + '.disc') os.rename(original_path, new_path) print(f"Archivo renombrado: {original_path} → {new_path}") # Crear el archivo .m3u m3u_path = os.path.join(base_path, f'{base_name}.m3u') with open(m3u_path, 'w') as m3u_file: for file in sorted(group_files): # Asegura que estén en orden new_filename = file + '.disc' # El nombre con la nueva extensión m3u_file.write(new_filename + '\n') print(f"Archivo .m3u creado: {m3u_path}") print("Organización y renombrado completados.") if __name__ == "__main__": # Comprobamos que se pase un argumento con la ruta base if len(sys.argv) != 2: print("Uso: python script.py ") sys.exit(1) # Obtenemos la ruta base desde los argumentos base_path = sys.argv[1] # Verificamos que la ruta exista if not os.path.exists(base_path): print(f"Error: La ruta especificada '{base_path}' no existe.") sys.exit(1) organize_files(base_path)