¿Cómo puedo automatizar la creación de los gráficos para cada ejecución de mi script de conversión? | Luigi Tools

¿Cómo puedo automatizar la creación de los gráficos para cada ejecución de mi script de conversión?


Para automatizar la creación de gráficos en cada ejecución de tu script de conversión, puedes modificar el código anterior para que la generación de gráficos sea parte integral del proceso, y no algo que se ejecuta por separado después de la conversión. Además, deberías implementar un sistema para nombrar los archivos de forma única, para evitar sobrescribir gráficos en ejecuciones sucesivas. Aquí te presento una versión mejorada:


```python
import csv
import json
import time
import os
import matplotlib.pyplot as plt
import psutil
import datetime

def convertir_csv_a_json(csv_filepath, json_filepath, chunk_size):
    # ... (Esta función permanece igual que en la respuesta anterior) ...


def generar_graficos(chunk_sizes, resultados, output_dir):
    """Genera y guarda los gráficos de rendimiento."""
    # ... (Esta función permanece igual que en la respuesta anterior, excepto por el nombre del archivo) ...

    # Guarda el gráfico con una marca de tiempo para evitar sobrescrituras
    timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
    filename = os.path.join(output_dir, f"grafico_chunk_{chunk_size}_{timestamp}.png")
    plt.savefig(filename)
    print(f"Gráfico guardado en: {filename}")
    plt.close()


# Datos de entrada
csv_filepath = "tu_archivo.csv"
json_filepath = "tu_archivo.json"
chunk_sizes = [1000, 10000, 100000] # Ajusta los tamaños de chunk según sea necesario
output_dir = "graficos_chunks"
os.makedirs(output_dir, exist_ok=True) #Crea el directorio si no existe

# Ejecución principal del script
resultados = []
for chunk_size in chunk_sizes:
    write_time, io_write, total_time, memory_usage = convertir_csv_a_json(csv_filepath, json_filepath, chunk_size)
    resultados.append((chunk_size, write_time, total_time, io_write, memory_usage))
    generar_graficos([chunk_size], [(chunk_size, write_time, total_time, io_write, memory_usage)], output_dir) #Genera gráfico inmediatamente después de cada conversión

print("Conversión y generación de gráficos completadas.")

```

Las principales mejoras son:

* **Generación inmediata:** El código ahora genera y guarda el gráfico *inmediatamente* después de cada conversión para un tamaño de chunk, en lugar de generar todos los gráficos al final. Esto asegura que se genere un gráfico para cada ejecución, incluso si el script falla posteriormente.

* **Nombres de archivo únicos:** Se utiliza una marca de tiempo en el nombre del archivo para evitar sobrescribir gráficos en ejecuciones posteriores del script. Esto es crucial para poder comparar resultados de diferentes ejecuciones.

Con esta modificación, cada vez que ejecutes el script, se generarán gráficos con nombres únicos, lo que facilita el seguimiento del rendimiento a lo largo del tiempo y para diferentes configuraciones. Recuerda adaptar las rutas de archivos y los tamaños de chunk a tu entorno.

Entradas más populares de este blog

Publicaciones SENA - Servicio Nacional de Aprendizaje

Recursos Tipográficos | Fuente Arial Cursiva Descarga Gratis

Volante Media Carta en Papel Bond y Tarjetas de Presentación