HMI_Translate_Helper_wMaste.../funciones_comunes/funciones_base.py

51 lines
1.7 KiB
Python

import re
import time
import pandas as pd
# Diccionario de idiomas
IDIOMAS = {
0: ("Italian", "it-IT"),
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):
if pd.isnull(texto):
return 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}. Por favor cierre el archivo. 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.")