20 scripts de Python para automatizar tareas

Actualizado el: 21/08/2026
Tempo de leitura: 4 minutos
Automação de tarefas com Python

Python es una de las mejores herramientas para eliminar tareas repetitivas del trabajo diario. Con unas pocas líneas puedes renombrar archivos, organizar carpetas, generar informes, validar datos, crear copias de seguridad o consultar servicios externos. La clave no es copiar un script y ejecutarlo sin revisar, sino entender sus rutas, permisos, entradas y posibles efectos.

Antes de automatizar procesos reales, conviene conocer automatización de tareas con Python, el manejo de rutas con pathlib, el uso de archivos CSV y las excepciones en Python. Prueba siempre con copias y añade un modo simulación cuando el script mueva, renombre o elimine archivos.

1. Crear carpetas por fecha

from pathlib import Path
from datetime import date

carpeta = Path("informes") / date.today().isoformat()
carpeta.mkdir(parents=True, exist_ok=True)

Este patrón sirve para separar exportaciones diarias y evitar mezclar resultados.

2. Renombrar archivos en lote

from pathlib import Path

for indice, archivo in enumerate(Path("fotos").glob("*.jpg"), start=1):
    nuevo = archivo.with_name(f"foto_{indice:04d}.jpg")
    archivo.rename(nuevo)

Comprueba primero si el nombre nuevo ya existe. Para mayor seguridad, imprime el plan antes de renombrar.

3. Organizar descargas por extensión

import shutil
from pathlib import Path

base = Path.home() / "Downloads"
for archivo in base.iterdir():
    if archivo.is_file():
        extension = archivo.suffix.lower().lstrip(".") or "sin_extension"
        destino = base / extension
        destino.mkdir(exist_ok=True)
        shutil.move(str(archivo), str(destino / archivo.name))

Ignora archivos temporales como .part o .crdownload.

4. Buscar archivos grandes

limite = 500 * 1024 * 1024

for archivo in Path.home().rglob("*"):
    try:
        if archivo.is_file() and archivo.stat().st_size > limite:
            print(archivo, archivo.stat().st_size)
    except PermissionError:
        continue

No recorras todo el disco sin necesidad; limita la búsqueda a carpetas específicas.

5. Crear una copia de seguridad ZIP

import shutil
from datetime import datetime

nombre = f"backup_{datetime.now():%Y%m%d_%H%M%S}"
shutil.make_archive(nombre, "zip", root_dir="proyecto")

Verifica después que el archivo pueda abrirse. Una copia no comprobada no es un respaldo confiable.

6. Eliminar archivos temporales antiguos

from datetime import datetime, timedelta

limite = datetime.now() - timedelta(days=30)
for archivo in Path("temporales").glob("*.tmp"):
    fecha = datetime.fromtimestamp(archivo.stat().st_mtime)
    if fecha < limite:
        archivo.unlink()

Valida que la carpeta objetivo sea exactamente la esperada antes de borrar.

7. Combinar varios CSV

import pandas as pd

archivos = Path("ventas").glob("*.csv")
dataframes = [pd.read_csv(ruta) for ruta in archivos]
resultado = pd.concat(dataframes, ignore_index=True)
resultado.to_csv("ventas_combinadas.csv", index=False)

Comprueba que todas las columnas sean compatibles antes de concatenar.

8. Eliminar filas duplicadas

df = pd.read_csv("clientes.csv")
df = df.drop_duplicates(subset=["email"], keep="last")
df.to_csv("clientes_sin_duplicados.csv", index=False)

Conservar la última fila solo es correcto cuando representa la versión más reciente.

9. Convertir Excel a CSV

df = pd.read_excel("datos.xlsx", sheet_name="Ventas")
df.to_csv("ventas.csv", index=False, encoding="utf-8")

Las fórmulas, formatos y varias hojas no se conservan en CSV.

10. Generar un informe de carpetas

import csv

with open("inventario.csv", "w", newline="", encoding="utf-8") as salida:
    escritor = csv.writer(salida)
    escritor.writerow(["ruta", "bytes"])
    for archivo in Path("documentos").rglob("*"):
        if archivo.is_file():
            escritor.writerow([archivo, archivo.stat().st_size])

El módulo CSV de la documentación oficial explica opciones para delimitadores, encabezados y dialectos.

11. Descargar un archivo con Requests

import requests

url = "https://example.com/informe.pdf"
respuesta = requests.get(url, timeout=30)
respuesta.raise_for_status()
Path("informe.pdf").write_bytes(respuesta.content)

En archivos grandes utiliza transmisión por bloques y limita el tamaño máximo permitido.

12. Comprobar si un sitio responde

import requests

try:
    respuesta = requests.get("https://example.com", timeout=10)
    print(respuesta.status_code)
except requests.RequestException as error:
    print(f"No disponible: {error}")

Una sola respuesta fallida no demuestra una caída; añade reintentos y comprueba desde más de una ubicación.

13. Extraer títulos de una página

import requests
from bs4 import BeautifulSoup

html = requests.get("https://example.com", timeout=20).text
sopa = BeautifulSoup(html, "html.parser")
for titulo in sopa.select("h2"):
    print(titulo.get_text(" ", strip=True))

Respeta los términos del sitio, el archivo robots.txt y los límites de solicitudes.

14. Enviar un correo por SMTP

import smtplib
from email.message import EmailMessage

mensaje = EmailMessage()
mensaje["Subject"] = "Informe automático"
mensaje["From"] = "robot@example.com"
mensaje["To"] = "equipo@example.com"
mensaje.set_content("El informe está listo.")

with smtplib.SMTP_SSL("smtp.example.com", 465) as servidor:
    servidor.login("robot@example.com", "CONTRASEÑA")
    servidor.send_message(mensaje)

No escribas credenciales en el código. Utiliza variables de entorno o un gestor de secretos. Consulta la documentación oficial de smtplib.

15. Crear contraseñas seguras

import secrets
import string

alfabeto = string.ascii_letters + string.digits + "!@#$%"
password = "".join(secrets.choice(alfabeto) for _ in range(20))
print(password)

Para seguridad utiliza secrets, no random.

16. Calcular hashes de archivos

import hashlib

def hash_archivo(ruta):
    digest = hashlib.sha256()
    with open(ruta, "rb") as archivo:
        for bloque in iter(lambda: archivo.read(1024 * 1024), b""):
            digest.update(bloque)
    return digest.hexdigest()

Los hashes permiten comprobar integridad después de copiar o descargar.

17. Reemplazar texto en varios archivos

for ruta in Path("docs").glob("*.txt"):
    texto = ruta.read_text(encoding="utf-8")
    nuevo = texto.replace("Empresa Antigua", "Empresa Nueva")
    ruta.write_text(nuevo, encoding="utf-8")

Crea una copia antes de modificar. Los reemplazos simples pueden cambiar partes no deseadas.

18. Convertir imágenes por lote

from PIL import Image

salida = Path("convertidas")
salida.mkdir(exist_ok=True)
for ruta in Path("imagenes").glob("*.png"):
    with Image.open(ruta) as imagen:
        imagen.convert("RGB").save(salida / f"{ruta.stem}.jpg", quality=90)

Ten en cuenta transparencias, perfiles de color y orientación EXIF.

19. Vigilar una carpeta

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class Eventos(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            print("Nuevo:", event.src_path)

Esta base permite iniciar procesamientos cuando llegan archivos, pero debes evitar eventos duplicados y esperar a que la copia termine.

20. Programar una tarea diaria

La forma más confiable suele ser utilizar el Programador de tareas de Windows, cron en Linux o launchd en macOS. El script debe ejecutar una tarea y terminar, mientras el sistema operativo controla el horario, los reintentos y los registros.

def main():
    generar_informe()

if __name__ == "__main__":
    main()

Cómo convertir un ejemplo en automatización confiable

Cada script debe validar sus entradas, usar rutas configurables y registrar errores. Añade logging, límites de tiempo, reintentos y un modo simulación. No captures todas las excepciones para continuar como si nada; registra el problema y decide si la operación puede repetirse.

También es importante que el proceso sea idempotente: ejecutarlo dos veces no debería duplicar registros, sobrescribir datos inesperadamente ni enviar dos correos. Guarda estados o identificadores cuando sea necesario.

Conclusión

Estos veinte ejemplos cubren archivos, datos, red, correo, seguridad e imágenes. Empieza por una tarea pequeña y repetitiva, crea una versión que solo muestre lo que haría y después habilita los cambios reales. Una buena automatización no solo ahorra tiempo: también deja registros, maneja errores y puede ejecutarse nuevamente sin causar daños.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Contenido del artículo

    Artículos relacionados

    Imagem ilustrativa de conteúdo Python para YouTube
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    YouTube con Python: descarga vídeos propios con yt-dlp

    Descarga copias de tus propios vídeos o contenido autorizado con Python y yt-dlp, validación, historial, límites, FFmpeg y prácticas responsables.

    Ler mais

    Tempo de leitura: 6 minutos
    12/07/2026
    Automação de postagens no Twitter usando Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Tweepy: automatiza publicaciones en X con Python

    Automatiza publicaciones en X con Tweepy, credenciales seguras, validación, deduplicación, programación, logs y prácticas responsables contra el spam.

    Ler mais

    Tempo de leitura: 5 minutos
    12/07/2026
    Geração e edição de planilhas Excel usando Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Excel con Python: crea y edita con openpyxl

    Crea y edita Excel con Pandas y openpyxl: hojas, fórmulas, estilos, filtros, validación, gráficos, rutas seguras y manejo de archivos

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Gerando aplicativo APK Android com Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    APK Android con Python, Kivy y Buildozer

    Genera un APK Android con Python, Kivy y Buildozer: configuración, permisos, recursos, compilación, pruebas, almacenamiento, firma y publicación.

    Ler mais

    Tempo de leitura: 6 minutos
    12/07/2026
    Web scraper de notícias em Python com envio para Telegram
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Scraper de noticias con Python y Telegram

    Crea un scraper de noticias con Requests y Beautiful Soup, elimina duplicados y envía titulares a Telegram de forma segura

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Compactação de arquivos ZIP usando Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    zipfile: descomprime archivos ZIP con seguridad

    Descomprime archivos ZIP con Python de forma segura: valida rutas, evita Zip Slip, limita tamaños, verifica integridad y procesa archivos

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026