Alonso Mercader

Ouail VSCode , script python automatización colores
 avatar
unknown
plain_text
2 months ago
2.5 kB
7
Indexable
import pdfplumber

# Ruta del archivo PDF
ruta_pdf = "ruta_al_catalogo.pdf"

# Abrir el PDF y extraer el texto de todas las páginas
texto_completo = ""
with pdfplumber.open(ruta_pdf) as pdf:
    for pagina in pdf.pages:
        texto_completo += pagina.extract_text() + "\n"

# Imprimir el texto extraído (opcional)
print(texto_completo)


import re

# Patrón para extraer el código y el color (ejemplo: "trx-243 green")
patron = r"(trx-\d+)\s+(\w+)"
productos_extraidos = re.findall(patron, texto_completo)

# Mostrar los productos extraídos
for codigo, color in productos_extraidos:
    print(f"Código: {codigo}, Color: {color}")


# Diccionario para mapear variantes de colores a un color estandarizado
mapeo_colores = {
    "green": "green",
    "lime": "green",
    "forest": "green",
    "red": "red",
    "crimson": "red",
    # Agrega otros mapeos según tus necesidades
}


# Lista para almacenar los productos con el nuevo nombre
productos_renombrados = []

for codigo, color in productos_extraidos:
    # Normalizar el color a minúsculas
    color_normalizado = color.lower()
    # Obtener el color estandarizado usando el diccionario
    color_estandar = mapeo_colores.get(color_normalizado, color_normalizado)
    
    if color_estandar == "green":
        # Extraer solo la parte numérica del código, por ejemplo "trx-243" -> "243"
        numero = re.search(r"\d+", codigo).group()
        nuevo_codigo = numero
    else:
        # Para otros colores, puedes definir otras transformaciones.
        # En este ejemplo, se mantiene el código original.
        nuevo_codigo = codigo
        
    productos_renombrados.append({
        "codigo_original": codigo,
        "color_original": color,
        "nuevo_codigo": nuevo_codigo
    })

# Mostrar los resultados
for producto in productos_renombrados:
    print(f"Original: {producto['codigo_original']} {producto['color_original']} --> Nuevo código: {producto['nuevo_codigo']}")


import csv

# Nombre del archivo CSV de salida
nombre_archivo = "productos_renombrados.csv"

# Escribir los datos en el CSV
with open(nombre_archivo, mode="w", newline="", encoding="utf-8") as archivo_csv:
    campos = ["codigo_original", "color_original", "nuevo_codigo"]
    writer = csv.DictWriter(archivo_csv, fieldnames=campos)
    
    writer.writeheader()
    for producto in productos_renombrados:
        writer.writerow(producto)

print(f"Archivo CSV '{nombre_archivo}' generado con éxito.")
Editor is loading...
Leave a Comment