▷ 5 scripts de Python para automatizar tu día a día (con código completo) 2026

5 scripts de Python para automatizar tu día a día (con código completo)

Una de las mejores cosas de Python es lo rápido que automatizas tareas que te quitan tiempo todos los días. Renombrar archivos en lote, mandar mensajes, descargar imágenes, leer PDFs, hacer backups — son scripts de 20-30 líneas que ahorran horas a la semana.

En esta entrada te dejo 5 scripts reales que uso yo mismo. Puedes copiarlos, adaptarlos a tu caso y empezar a usarlos hoy. Cada uno explicado paso a paso.

¿Por qué automatizar pequeñas cosas?

Porque el efecto compuesto es brutal. Un script que te ahorra 5 minutos al día son 30 horas al año. Y normalmente no automatizas una sola tarea — empiezas con una y descubres 10 más donde Python te puede sustituir.

Lo único que necesitas: Python 3.10+ instalado. Para algunos scripts, librerías extras que verás en cada caso.

Script 1 — Renombrar archivos en lote

Caso de uso: tienes 200 fotos llamadas IMG_5341.jpg, IMG_5342.jpg… y quieres pasarlas a viaje-cordoba-001.jpg, viaje-cordoba-002.jpg

from pathlib import Path

CARPETA = Path("/Users/tu/Desktop/fotos")
PREFIJO = "viaje-cordoba"

# Solo .jpg (cambia si necesitas otro formato)
archivos = sorted(CARPETA.glob("*.jpg"))

for i, archivo in enumerate(archivos, start=1):
    nuevo_nombre = f"{PREFIJO}-{i:03d}{archivo.suffix}"
    nuevo_path = archivo.parent / nuevo_nombre
    archivo.rename(nuevo_path)
    print(f"  {archivo.name} → {nuevo_nombre}")

print(f"\n{len(archivos)} archivos renombrados.")

Cómo usarlo:
1. Cambia CARPETA y PREFIJO.
2. Ejecuta python renombrar.py.

Variantes útiles:
– Para añadir la fecha: f"{PREFIJO}-{datetime.now():%Y%m%d}-{i:03d}{archivo.suffix}".
– Para procesar varias extensiones: archivo for ext in ('*.jpg', '*.png') for archivo in CARPETA.glob(ext).

Script 2 — Enviar mensajes de Telegram desde Python

Caso de uso: te avisas a ti mismo cuando un proceso largo termina, mandas alertas de servidores, te llegan resúmenes diarios.

Setup previo (una vez):
1. Crea un bot con @BotFather en Telegram. Te da un token.
2. Inicia conversación con tu bot (mándale un /start).
3. Ve a https://api.telegram.org/bot<TU_TOKEN>/getUpdates para ver tu chat_id.

El script:

import requests

TOKEN = "tu-token-de-botfather"
CHAT_ID = "tu-chat-id"

def mandar_telegram(mensaje):
    url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
    data = {"chat_id": CHAT_ID, "text": mensaje, "parse_mode": "Markdown"}
    response = requests.post(url, data=data)
    return response.ok

# Ejemplo de uso
mandar_telegram("*Backup completado* ✅\n3.4 GB respaldados en 12 minutos")

Instalar requests: pip install requests.

Donde brilla:
– En scripts largos: mandar_telegram("Tarea completada") al final.
– En cron jobs nocturnos para que te llegue resumen al móvil por la mañana.
– Para alertas de monitorización (caída de servicios, errores).

📥 Llévate el cheatsheet de Python (gratis)

PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.

Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.

Script 3 — Descargar todas las imágenes de una página

Caso de uso: quieres bajarte todas las imágenes de un blog/página para usarlas (con permiso de su autor, claro). Mucho más rápido que click derecho × N.

import requests
from pathlib import Path
from urllib.parse import urljoin
from bs4 import BeautifulSoup

URL = "https://ejemplo.com/articulo"
CARPETA = Path("imagenes_descargadas")
CARPETA.mkdir(exist_ok=True)

# Descargar el HTML
response = requests.get(URL, headers={"User-Agent": "Mozilla/5.0"})
soup = BeautifulSoup(response.text, "html.parser")

# Buscar todas las etiquetas <img>
imgs = soup.find_all("img")

for i, img in enumerate(imgs, start=1):
    src = img.get("src")
    if not src:
        continue

    url_absoluta = urljoin(URL, src)
    extension = url_absoluta.split(".")[-1].split("?")[0][:5]

    try:
        img_response = requests.get(url_absoluta, headers={"User-Agent": "Mozilla/5.0"})
        if img_response.status_code == 200:
            destino = CARPETA / f"img_{i:03d}.{extension}"
            destino.write_bytes(img_response.content)
            print(f"  Guardada: {destino.name}")
    except Exception as e:
        print(f"  Error con {url_absoluta}: {e}")

print(f"\n{len(imgs)} imágenes procesadas.")

Instalar: pip install requests beautifulsoup4.

Buenas prácticas:
– Respeta robots.txt y los términos de servicio.
– No abuses (añade time.sleep(1) entre descargas para no saturar al servidor).
– Si la página usa JavaScript para cargar imágenes, BeautifulSoup no las verá. Para eso usa Playwright (otra entrada).

Script 4 — Convertir PDFs a texto

Caso de uso: tienes un PDF (factura, libro, contrato, paper) y quieres extraer el texto para procesarlo, buscarlo o pasarlo a un LLM.

from pathlib import Path
from pypdf import PdfReader

PDF = Path("documento.pdf")
SALIDA = PDF.with_suffix(".txt")

reader = PdfReader(PDF)
print(f"PDF con {len(reader.pages)} páginas")

texto_completo = []
for i, pagina in enumerate(reader.pages, start=1):
    texto = pagina.extract_text() or ""
    texto_completo.append(f"\n--- Página {i} ---\n{texto}")

SALIDA.write_text("\n".join(texto_completo), encoding="utf-8")
print(f"Texto guardado en: {SALIDA}")

Instalar: pip install pypdf.

Variantes:
Procesar todos los PDFs de una carpeta:
python
for pdf in Path(".").glob("*.pdf"):
# ... codigo de arriba con PDF = pdf

Combinar con LLM: lee el texto, mándalo a Claude o GPT con la pregunta que quieras hacer sobre ese documento. Mini-RAG en 50 líneas.

⚠️ Cuidado: PDFs escaneados (imágenes, no texto real) NO funcionan con pypdf. Necesitas OCR (Tesseract o servicios cloud). Para texto puro de un PDF normal, este script va perfecto.

Script 5 — Backup automático a Drive/Dropbox

Caso de uso: quieres que cada noche se copien automáticamente tus archivos importantes a Google Drive (sin abrir nada).

Aquí lo más limpio es tener tu carpeta sincronizada localmente con la app de Drive/Dropbox y mover archivos ahí. El script en sí mueve archivos a esa carpeta:

import shutil
from pathlib import Path
from datetime import datetime

ORIGEN = Path("/Users/tu/proyectos-importantes")
DESTINO = Path("/Users/tu/Library/CloudStorage/GoogleDrive-tu@gmail.com/Mi unidad/backups")

fecha = datetime.now().strftime("%Y%m%d-%H%M")
nombre_zip = f"backup-{fecha}"
zip_path = DESTINO / nombre_zip

# Crear ZIP comprimido
shutil.make_archive(str(zip_path), 'zip', str(ORIGEN))
print(f"Backup creado: {zip_path}.zip")

# Limpiar backups antiguos (mantener solo los 7 mas recientes)
backups = sorted(DESTINO.glob("backup-*.zip"), key=lambda p: p.stat().st_mtime, reverse=True)
for backup_viejo in backups[7:]:
    backup_viejo.unlink()
    print(f"  Eliminado backup antiguo: {backup_viejo.name}")

Para que se ejecute automáticamente cada noche:

En Mac/Linux (cron)

# Editar crontab
crontab -e

# Anadir esta linea (cada noche a las 03:00)
0 3 * * * /usr/bin/python3 /Users/tu/scripts/backup.py >> /Users/tu/scripts/backup.log 2>&1

En Windows (Task Scheduler)

  1. Abre “Programador de tareas”.
  2. “Crear tarea básica” → desencadenador “Diariamente” → acción “Iniciar programa”.
  3. Programa: python.exe. Argumentos: ruta de backup.py.

Cómo elegir tu primera automatización

Si nunca has automatizado nada, esto es lo que yo haría:

  1. Esta semana: identifica una tarea que hagas más de 2 veces por semana y te aburra.
  2. Este finde: automatízala con un script de 30 líneas (cualquiera de los de arriba como base).
  3. El lunes: déjalo corriendo y disfruta.

Cuando ves el primer “esto se hace solo y antes me llevaba 10 minutos”, quieres automatizar todo. Bienvenido.

¿Te ha valido esto?

Si te ha resultado útil, llévate el cheatsheet de Python en PDF — 6 páginas con tipos, condicionales, bucles, estructuras de datos, funciones y los errores típicos. Para tener al lado mientras programas. Gratis.

Sin spam. Email + cheatsheet + un correo por semana con tutoriales nuevos.

Conclusión

Python es probablemente la herramienta de productividad más infrautilizada que existe. Cualquier persona con 2-3 meses de Python sólido puede automatizar 5-10 tareas reales de su trabajo o vida personal.

Si quieres aprender Python para llegar a este punto (y mucho más allá), en El Pythonista tienes el curso completo. La sección de scripts y automatización empieza desde el día 1.

Un abrazo,
Oscar

¿Quieres aprender Python en orden, no a saltos?

Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.

Ver el curso completo →

37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicar un comentario