El poder de Python y la automatización

18 de noviembre de 2024

La automatización de tareas con Python es una de las formas más efectivas de ahorrar tiempo y esfuerzo en actividades repetitivas. Python, con su sintaxis sencilla y su gran cantidad de librerías, permite a cualquier persona automatizar procesos sin necesidad de ser un experto en programación.

En este artículo, exploraremos algunos scripts simples que pueden facilitar la vida diaria, desde la gestión de archivos hasta el manejo de correos electrónicos y más.

1. Renombrar Múltiples Archivos en un Directorio

A veces necesitamos renombrar varios archivos con un formato específico. Con Python, esto se puede hacer en segundos usando el módulo os.

import os

directorio = "/ruta/a/tu/directorio"
for i, archivo in enumerate(os.listdir(directorio)):
    extension = os.path.splitext(archivo)[1]  # Obtener la extensión del archivo
    nueva_ruta = os.path.join(directorio, f"archivo_{i}{extension}")
    os.rename(os.path.join(directorio, archivo), nueva_ruta)
print("Archivos renombrados exitosamente.")

Este script cambia el nombre de todos los archivos de un directorio, asignándoles un nombre secuencial sin perder su extensión original.

2. Enviar un Correo Electrónico Automáticamente

Python permite enviar correos automáticos con smtplib. Aquí un ejemplo de cómo enviar un email desde una cuenta de Gmail:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

usuario = "tuemail@gmail.com"
contraseña = "tupassword"

def enviar_correo(destinatario, asunto, mensaje):
    msg = MIMEMultipart()
    msg["Subject"] = asunto
    msg["From"] = usuario
    msg["To"] = destinatario
    msg.attach(MIMEText(mensaje, "plain"))

    with smtplib.SMTP_SSL("smtp.gmail.com", 465) as servidor:
        servidor.login(usuario, contraseña)
        servidor.sendmail(usuario, destinatario, msg.as_string())

enviar_correo("destinatario@gmail.com", "Prueba de Python", "Este es un mensaje automatizado.")
print("Correo enviado exitosamente.")

Este código permite enviar correos con formato enriquecido y múltiples destinatarios.

3. Descargar Varias Imágenes desde una Lista de URLs

Si necesitas descargar varias imágenes de Internet, puedes usar requests y os para automatizar el proceso:

import requests
import os

urls = [
    "https://ejemplo.com/imagen1.jpg",
    "https://ejemplo.com/imagen2.jpg",
    "https://ejemplo.com/imagen3.jpg"
]

directorio_destino = "imagenes_descargadas"
os.makedirs(directorio_destino, exist_ok=True)

for i, url in enumerate(urls):
    respuesta = requests.get(url)
    with open(f"{directorio_destino}/imagen_{i}.jpg", "wb") as archivo:
        archivo.write(respuesta.content)
    print(f"Imagen {i+1} descargada exitosamente.")

Este script descarga varias imágenes y las guarda en una carpeta específica.

4. Crear un Recordatorio con Notificaciones y Sonido

Puedes hacer que Python te envíe notificaciones en tu computadora y reproduzca un sonido de alerta usando plyer y playsound:

from plyer import notification
from playsound import playsound
import time

def recordatorio(titulo, mensaje, sonido):
    notification.notify(
        title=titulo,
        message=mensaje,
        timeout=10
    )
    playsound(sonido)

recordatorio("Recordatorio", "No olvides tomar agua cada 2 horas!", "alerta.mp3")

Este script es útil para configurar recordatorios automáticos que aparecerán en tu escritorio y reproducirán un sonido.

5. Extraer Texto de Múltiples PDFs y Guardarlo en un Archivo de Texto

Si trabajas con documentos PDF y necesitas extraer su contenido, puedes usar PyPDF2 y guardar el texto en un archivo:

import PyPDF2
import os

directorio_pdfs = "pdfs"
archivo_salida = "texto_extraido.txt"

with open(archivo_salida, "w", encoding="utf-8") as salida:
    for archivo in os.listdir(directorio_pdfs):
        if archivo.endswith(".pdf"):
            with open(os.path.join(directorio_pdfs, archivo), "rb") as f:
                lector = PyPDF2.PdfReader(f)
                for pagina in lector.pages:
                    salida.write(pagina.extract_text() + "\n")
print("Texto extraído y guardado exitosamente.")

Este script procesa múltiples archivos PDF dentro de una carpeta y guarda el contenido extraído en un solo archivo de texto.

Conclusión

La automatización con Python permite simplificar tareas cotidianas y aumentar la productividad. Desde la gestión de archivos hasta el envío de correos y la extracción de información, las posibilidades son infinitas.

Si aún no has explorado la automatización con Python, estos ejemplos son un excelente punto de partida. ¡Prueba algunos scripts y descubre cómo puedes hacer tu día más eficiente!