es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo escribir registros en un archivo nuevo desde el repositorio de código en la plataforma Foundry

En el Repositorio de código, cuando estoy previsualizando o probando archivos *.py, necesito poner todos los registros en un archivo. Si el archivo ya existe, los registros deben agregarse a ese archivo con la marca de tiempo. ¿Alguien podría sugerir una manera de hacer esto?

Explicación:
Estaba realizando una prueba de pytest para probar la funcionalidad de mi código, por lo que quiero guardar los resultados de las pruebas en un archivo que puede ser un archivo .txt. Especificaré la ruta del archivo y el archivo debe crearse en la ruta especificada con los resultados de las pruebas en él. Si se ejecutan las pruebas nuevamente, esos resultados de las pruebas se deben agregar al mismo archivo con la marca de tiempo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una forma de lograr esto es utilizar el módulo de registro de Python (Python logging module). Puedes crear un objeto logger y configurarlo para que escriba logs en un archivo. El logger puede configurarse para que agregue al final de un archivo existente en lugar de sobrescribirlo. Al agregar una marca de tiempo a cada mensaje de log, puedes distinguir entre las entradas de log de diferentes ejecuciones de prueba.

    Aquí tienes un ejemplo de cómo puedes configurar el logger para que escriba logs en un archivo:

    import logging
    import os
    from datetime import datetime
    
    def get_logger(filepath):
        logger = logging.getLogger(__name__)
        logger.setLevel(logging.INFO)
    
        # crear un controlador de archivo
        file_handler = logging.FileHandler(filepath)
        file_handler.setLevel(logging.INFO)
    
        # crear un formateador
        formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
        file_handler.setFormatter(formatter)
    
        # agregar los controladores al logger
        logger.addHandler(file_handler)
    
        return logger
    
    
    # uso de ejemplo
    log_file = os.path.join('logs', 'test_results.txt')
    logger = get_logger(log_file)
    
    current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    logger.info(f'La ejecución de la prueba comenzó a las {current_time}')
    
    # ejecutar pruebas aquí
    
    current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    logger.info(f'La ejecución de la prueba se completó a las {current_time}')
    

    En este ejemplo, la función get_logger() devuelve un objeto logger que escribe logs en el archivo especificado. La variable current_time se utiliza para agregar una marca de tiempo a los mensajes de log.

    Puedes llamar a la función get_logger() al principio de tu script de prueba para crear el objeto logger. Luego, utiliza el logger para escribir mensajes de log a lo largo del script de prueba. Cuando vuelvas a ejecutar las pruebas, el logger agregará los nuevos mensajes de log al archivo existente.

Comments are closed.