# Diccionario de idiomas IDIOMAS = { 1: ("English", "en-GB"), 2: ("Portuguese", "pt-PT"), 3: ("Spanish", "es-ES"), 4: ("Russian", "ru-RU"), 5: ("French", "fr-FR"), 6: ("German", "de-DE"), } def mostrar_idiomas(): print("Selecciona el idioma de destino:") for numero, (nombre, _) in IDIOMAS.items(): print(f"{numero}: {nombre}") def transformar_texto(texto): # Sustituir [[digits]] por <> texto_transformado = re.sub(r'\[\[digits\]\]', '<>', texto) # Sustituir cualquier <...> por <#> texto_transformado = re.sub(r'<.*?>', '<#>', texto_transformado) return texto_transformado def save_dataframe_with_retries(df, output_path, max_retries=5, retry_delay=5): """ Guarda un DataFrame en un archivo Excel, reintentando si el archivo está en uso. :param df: El DataFrame a guardar. :param output_path: La ruta del archivo donde se guardará el DataFrame. :param max_retries: El número máximo de reintentos en caso de error. :param retry_delay: El tiempo de espera (en segundos) entre cada reintento. """ retries = 0 while retries < max_retries: try: df.to_excel(output_path, index=False) print("Archivo guardado exitosamente.") return except PermissionError as e: print(f"Error de permiso: {e}. Reintentando en {retry_delay} segundos...") retries += 1 time.sleep(retry_delay) print(f"No se pudo guardar el archivo después de {max_retries} intentos.")