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 continuar un comando en Tkinter

Estoy haciendo una GUI para enviar correos electrónicos con archivos adjuntos utilizando Tkinter y libreria Win32. Hay momentos en los que los archivos adjuntos no se agregarán a la carpeta para algunos identificadores (IDs). Durante estas circunstancias, quiero capturar el error y saltar al siguiente ID para el cual pueda estar disponible el archivo adjunto. Soy capaz de capturar el error utilizando el siguiente código, pero estoy atascado en la parte de saltar el código. Intenté utilizar “pass” pero solo abre el correo sin adjunto, ignorando por completo el error. Básicamente, quiero crear una lista de todos los errores capturados y agregarla a un dataframe para solicitar los archivos adjuntos.

Para el siguiente ejemplo, “send(x)” es solo para dar una idea vaga sobre el código, no es una función real:

for x in lista_de_ids:
   try:
     send(x)
   except error_de_python.como error:
      print("archivo adjunto no encontrado")
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para saltar el ID y pasar al siguiente ID cuando no se encuentra un archivo adjunto, puedes agregar una declaración “continue” dentro del bloque “except”. Esta declaración omitirá la iteración actual del bucle y pasará a la siguiente iteración.

    Para hacer una lista de todos los errores capturados, puedes crear una lista vacía antes del bucle y agregar el mensaje de error a la lista dentro del bloque “except”. Después del bucle, puedes convertir la lista en un DataFrame de pandas usando “pandas.DataFrame()”.

    Aquí tienes un ejemplo de fragmento de código:

    import pandas as pd
    lista_errores = [] # crear lista vacía para capturar los errores
    for x in lista_id:
        try:
            enviar(x)
        except python.com_error as error:
            print("archivo adjunto no encontrado")
            # agregar mensaje de error a la lista
            lista_errores.append(str(error))
            # saltar este ID y pasar al siguiente ID
            continue
    
    # convertir lista_errores en DataFrame
    error_df = pd.DataFrame({'Mensaje de Error': lista_errores})
    

    Este fragmento de código omitirá los IDs para los cuales no se encuentren archivos adjuntos y capturará los mensajes de error en el DataFrame “error_df”.

Comments are closed.