Alonso Mercader
Ouail VSCode , script python automatización coloresunknown
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