Automatización de Tareas con Python: Guía Paso a Paso

¿Por qué automatizar con Python?

La automatización te permite ahorrar horas de trabajo manual. Python es el lenguaje ideal para esto gracias a su simplicidad y a la gran cantidad de librerías disponibles.

1. Automatización de Archivos

import os
import shutil

# Organizar archivos por extensión
carpeta = "/ruta/descargas"

for archivo in os.listdir(carpeta):
    ruta = os.path.join(carpeta, archivo)
    if os.path.isfile(ruta):
        ext = archivo.split(".")[-1].lower()
        destino = os.path.join(carpeta, ext.upper())
        os.makedirs(destino, exist_ok=True)
        shutil.move(ruta, os.path.join(destino, archivo))

2. Renombrar Archivos en Masa

import os

carpeta = "./fotos"
for i, archivo in enumerate(os.listdir(carpeta)):
    if archivo.endswith(".jpg"):
        nuevo = f"foto_{i+1:04d}.jpg"
        os.rename(
            os.path.join(carpeta, archivo),
            os.path.join(carpeta, nuevo)
        )

3. Envío Automático de Emails

import smtplib
from email.mime.text import MIMEText

def enviar_email(destino, asunto, mensaje):
    smtp = smtplib.SMTP("smtp.gmail.com", 587)
    smtp.starttls()
    smtp.login("tu_email@gmail.com", "tu_password")
    
    msg = MIMEText(mensaje)
    msg["Subject"] = asunto
    msg["From"] = "tu_email@gmail.com"
    msg["To"] = destino
    
    smtp.send_message(msg)
    smtp.quit()

enviar_email("destino@example.com", "Reporte", "Hola, aquí tu reporte.")

4. Web Scraping Automatizado

import requests
from bs4 import BeautifulSoup

url = "https://ejemplo.com/productos"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

productos = []
for item in soup.select(".producto"):
    nombre = item.select_one(".nombre").text
    precio = item.select_one(".precio").text
    productos.append({"nombre": nombre, "precio": precio})

5. Automatización con Tareas Programadas

import schedule
import time

def tarea_diaria():
    print("Ejecutando tarea diaria...")

schedule.every().day.at("09:00").do(tarea_diaria)
schedule.every().monday.do(tarea_diaria)

while True:
    schedule.run_pending()
    time.sleep(60)

Conclusión

La automatización con Python puede transformar tu productividad. Empieza con tareas pequeñas y ve escalando gradualmente.

🤖 Asistente Virtual
¡Hola! 👋

¿En qué te puedo ayudar hoy?