Alonso Mercader
Ouail VSCode , script python automatización coloresunknown
plain_text
a year ago
2.5 kB
10
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