Python

  • Envío de correos desde Python

    ¿Qué es MIME?

    MIME (Extensiones Multipropósito de Correo de Internet) es un estándar que permite la transmisión de varios tipos de contenido a través del correo electrónico, más allá del texto simple.

    • Versatilidad: MIME permite incluir texto, imágenes, audio, video y otros tipos de archivos en los mensajes de correo electrónico.
    • Codificación: Especifica métodos para codificar datos no textuales en texto plano para una transmisión segura por Internet.
    • Encabezados: Agrega campos adicionales a los encabezados estándar del correo electrónico para indicar el tipo y la codificación del contenido.

    Ejemplo de Código, vemos que es una clase:

    import smtplib
    import mimetypes
    from email.message import EmailMessage
    from email.utils import make_msgid
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.base import MIMEBase
    from email import encoders

    Configuración del servidor SMTP

    smtp_server = «smtp.gmail.com»
    smtp_port = 587
    username = «tu_correo@gmail.com»
    password = «tu_contraseña»

    Creación del mensaje

    msg = MIMEMultipart()
    msg[‘From’] = username
    msg[‘To’] = «destinatario@ejemplo.com»
    msg[‘Subject’] = «Asunto del Correo»

    Cuerpo del correo

    body = «Hola, este es un correo con un archivo adjunto.»
    msg.attach(MIMEText(body, ‘plain’))

    Adjuntar archivo

    filename = «archivo.txt»
    attachment = open(filename, «rb»)

    mime_base = MIMEBase(‘application’, ‘octet-stream’)
    mime_base.set_payload(attachment.read())
    encoders.encode_base64(mime_base)
    mime_base.add_header(‘Content-Disposition’, f»attachment; filename= {filename}»)

    msg.attach(mime_base)

    Envío del correo

    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(username, password)
    server.send_message(msg)
    server.quit()

    print(«Correo enviado con éxito.»)

    Este código hace lo siguiente:

    1. Configura el servidor SMTP.
    2. Crea un mensaje MIME multipart.
    3. Adjunta un cuerpo de texto al correo.
    4. Adjunta un archivo.
    5. Envía el correo a través del servidor SMTP

    De no existir el archivo nos remitirá este error:

    attachment = open(filename, «rb»)
    FileNotFoundError: [Errno 2] No such file or directory: ‘archivo.txt’

  • Diagramas de flujo

    Los diagramas de flujo son herramientas visuales muy útiles para representar procesos y decisiones! Son perfectos para planificar, documentar o visualizar el flujo de trabajo. Aquí te dejo un ejemplo básico de cómo se podría estructurar un diagrama de flujo para un proceso de toma de decisiones simple:

    Introducción a los Diagramas de Flujo

    Los diagramas de flujo son representaciones gráficas de procesos y flujos de trabajo. Se utilizan para ilustrar la secuencia de pasos necesarios para completar una tarea o resolver un problema, facilitando la comprensión y el análisis de procesos complejos.

    Historia y Origen

    El concepto de los diagramas de flujo se originó en la década de 1920 gracias a ingenieros industriales como Frank y Lillian Gilbreth. Fueron popularizados en los años 40 con la publicación del libro «Procedure for Program and System Flow Diagrams» por Herman Goldstine y John von Neumann.

    Simbología Básica

    Los diagramas de flujo utilizan una serie de símbolos estándar para representar diferentes tipos de acciones o decisiones:

    • Óvalo: Representa el inicio o el fin de un proceso.
    • Rectángulo: Indica una etapa o acción.
    • Rombo: Utilizado para decisiones, mostrando diferentes rutas dependiendo de la respuesta.
    • Flechas: Muestran la dirección del flujo de proceso.

    Aplicaciones

    1. Planificación y Mejora de Procesos: Ayudan a identificar cuellos de botella y áreas de mejora.
    2. Documentación de Procedimientos: Proveen una representación clara y detallada de los pasos en un proceso.
    3. Resolución de Problemas: Facilitan el análisis de procesos para encontrar soluciones efectivas.
    4. Educación y Formación: Utilizados como herramientas didácticas en la enseñanza de diversas disciplinas.

    Beneficios de Usar Diagramas de Flujo

    • Claridad: Simplifican procesos complejos, haciéndolos más fáciles de entender.
    • Eficiencia: Ayudan a identificar redundancias y optimizar flujos de trabajo.
    • Comunicación: Facilitan la comunicación de procesos entre diferentes partes interesadas.

    Cómo Crear un Diagrama de Flujo

    1. Definir el objetivo: Determina el proceso o problema que deseas ilustrar.
    2. Identificar los pasos clave: Desglosa el proceso en sus componentes esenciales.
    3. Elegir los símbolos adecuados: Utiliza la simbología estándar para representar cada paso.
    4. Conectar los elementos: Utiliza flechas para mostrar la secuencia y la dirección del flujo.
    5. Revisar y ajustar: Asegúrate de que el diagrama sea claro y preciso, realizando ajustes si es necesario.

    Conclusión

    Los diagramas de flujo son herramientas poderosas para la planificación, documentación y mejora de procesos. Su capacidad para simplificar y visualizar procedimientos los convierte en esenciales para la gestión eficiente y efectiva en diversos campos.

  • Cargar una imagen desde un archivo en Python.

    Para cargar una imagen desde un script en Python, debemos hacer uso de biblioteca PIL. De lo contrario, lanzará el error: ‘ModuleNotFoundError: No module named ‘PIL’.

    la biblioteca de imágenes de Python (PIL). Este error generalmente ocurre cuando el módulo PIL no está instalado en tu entorno de Python. Para resolver esto, puedes instalar la biblioteca Pillow, que es la versión actualizada y más compatible de PIL. Aquí te explico cómo hacerlo:

    1. Abre tu terminal o símbolo del sistema
    2. Ejecuta el siguiente comando:
    • Tambien es muy posible que nos falle otra vez y ahora con este mensaje al intentar instalar pillow.

    mas o menos asi:

    Este mensaje de error indica que el comando pip no se reconoce en tu sistema porque no está configurado correctamente en tu variable de entorno PATH. Aquí te dejo los pasos para solucionarlo:

    Para reproducir o mostrar una imagen en Python, puedes usar la biblioteca Pillow, que ya mencionamos anteriormente es posible que hasta que no reinicies el P.C. siga dando error.

    Aquí tienes un ejemplo simple de cómo hacerlo:

    1. Primero, asegúrate de tener Pillow instalado:
    2. Luego, usa el siguiente código para abrir y mostrar una imagen:

    Este código abrirá la imagen especificada por la ruta y la mostrará en una ventana. Solo tienes que reemplazar 'ruta/a/tu/imagen.jpg' con la ruta de la imagen que deseas mostrar.

    En este ejemplo de código fuente, he seleccionado una foto del blog de un café, y ambos archivos están en la misma carpeta, por lo que deberían abrirse de esta manera:

  • Modulo time en python

    Con la ayuda de Microsoft Copilot, su compañero de IA, se ha creado este artículo.

    – Módulo time en Python proporciona varias funciones para trabajar con el tiempo y la fecha. A continuación, se describen algunas de las funciones más comunes que ofrece:

    • time.time(): Devuelve el tiempo actual en segundos desde la época (1 de enero de 1970), que fue cuando los que crearon este módulo así lo decidieron el inicio.
    • time.sleep(secs): Pausa la ejecución del programa durante el número de segundos especificado.
    • time.localtime([secs]): Convierte un número de segundos desde la época en una estructura de tiempo local. Si no se especifican los segundos, utiliza el tiempo actual.
    • time.strftime(format, t): Convierte una tupla de tiempo o una estructura de tiempo en una cadena de caracteres según el formato especificado.
    • time.strptime(string, format): Convierte una cadena de caracteres en una estructura de tiempo según el formato especificado.

    Ejemplo de uso:

    Más ejemplos de cómo funcionan estas funciones:

  • Script para abrir una pagina WEB en Python

    Browser.

    Tenemos que importar el módulo { webbrowser }

    • open_new abre una ventana nueva si ya se encuentra abierta.
    • open_new_tab abre una ventana en el navegador que ya esta abierto.
    • open abre una instancia en el navegador.

    Podemos usar open para abir una web de esta manera, por ejemplo con un if condicional:

    • if menu == » s «:
      • print (» Se abrira la WEB «)
      • webbrowser.open(«https://elblogdemia.es/»)# Llamada a la pagina WEB

    Recuerda inportar.

    • import webbrowser # Importador para llamar a una pagina web

    En este código verás cómo se abren las páginas web que introduzcas entre las comillas:

  • Base de datos SQLite3 y DB browser

    El módulo que viene preinstalado en Python para trabajar con bases de datos es SQLite, y se importa de la siguiente manera:

    • import sqlite3

    Este módulo facilita la conexión a SQLite mediante el método ‘connect’, al cual debemos especificar la ruta del archivo; si el archivo no existe, se creará automáticamente.

    Para evitar que no de un error devemos de poner un condicional para que no cree la tabla si ya existe, con un if mas o menos de esta forma:

    • CREATE TABLE if not exists nombre de la tabla

    Debemos cerrar con close() porque si no lo hacemos, no podremos trabajar con ella.

    Ejemplo de codigo:

    Podemos crear el codigo de SQlite desde la aplicacion que ya te trae desde su WEB o bien copia y pegar.

    Lo instalamos desde la página web httpswww.sqlite.org y luego procedemos a la instalación.

    DB Browser for SQLite es el editor que nos permite interactuar con las bases de datos.

    DB Browser for SQLite pagina de descarga:

    Forma de introducir datos en una base:

    • cursor.executemany(«INSERT INTO personal VALUES(?,?,?)», nombre de la tabla)
  • Modulos y paquetes en Python

    • Los módulos son archivos que almacenan datos, clases y variables para ser utilizados según sea necesario en el programa.

    Para importar un módulo, archivo o clase en Python, utilizamos la palabra reservada ‘import’ seguida del nombre del módulo que deseamos importar. La sintaxis correcta sería:

    • from nombre archivo import nombre clase

    Los módulos deben ubicarse en el mismo directorio donde se está desarrollando la aplicación.

    • Los paquetes se utilizan cuando el código es extenso. Para organizar mejor el trabajo, creamos directorios que contienen archivos relacionados entre sí, generalmente pertenecientes a la misma categoría.

    El método para hacerlo sería:

    • from nombre carpeta . nombre archivo impor clase o funcion que queremos

    Se deve de poner en las carpetas un archivo vacio con el nombre de __init__.py

  • ‘Type error ‘, como aprovechar los errores, saber indentificarlos.

    Cuando da un error se puede gestionar para que el usuario al introducir mal un valor no salga del programa el bucle.

    Primero, se ejecuta la cláusula try  entre las palabras reservadas try y except.

    Si no hay excepción, except se omite y la ejecución try finalizará.

    Ejemplo de código fuente:

    while (True):
    print («Hola mundo» )

    try:

    operacion = input («\n Introdice letra»)
    print (operacion)

    except ValueError:
    print(» Oops! No vale introduce un valor valido «)
    Vtime.sleep(3) # Pausa para ver pantalla

    Pará poder identificar los errores podems usar ‘ type’ para identificar el el tipo.

    • except Exception as ex:#Forma de identificar el error
    •         print(«Tipo de error «, ex) # Imprime por la pantalla el valor que tiene lavariable del error
    •         print(» Pero puedes continuar «)

    Ejemplo de código entero:



  • La herencia simple y multiple en Python permite crear una clase derivada que hereda atributos y métodos de una única clase base.

    Para heredar de una clase a otra, pasamos la clase que queremos aprovechar entre paréntesis. Veamos este ejemplo:

    La herencia múltiple es similar a la simple, pero involucra a dos elementos, como se muestra en este ejemplo:

  • Que es un constructor

    Es una funcion que creamos dentro de una clase (class). 

    Los constructores se utilizan para crear instancias sobre los objetos de una clase.

    Su funcion es asignar valor a los elementos de una clase, se asigna con la instuccion def __init__(self)

    Self se utiliza dentro de todas las clases.

    Ejemplo de codigo:

Translate » Traductor