20 scripts de Python para automatizar tareas cotidianas

Publicado el: 11/07/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"] = "[email protected]"
mensaje["To"] = "[email protected]"
mensaje.set_content("El informe está listo.")

with smtplib.SMTP_SSL("smtp.example.com", 465) as servidor:
    servidor.login("[email protected]", "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

    Extração de texto de arquivos PDF usando Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Cómo extraer texto de archivos PDF con Python

    Extrae texto de PDF con Python usando pypdf y pdfplumber, procesa carpetas, tablas, archivos protegidos y detecta cuándo necesitas OCR.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Comparando listas e diferenças entre arrays em Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Cómo comparar dos listas en Python y encontrar diferencias

    Compara listas en Python con igualdad, sorted, sets y Counter, conserva duplicados, detecta registros modificados y evita errores frecuentes.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Automação em Python para organizar arquivos do computador
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Cómo organizar automáticamente los archivos de tu PC con Python

    Organiza automáticamente archivos del PC con Python, pathlib y shutil, evitando sobrescrituras, descargas incompletas y movimientos sin registro.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Script Python configurado para iniciar junto com o Windows
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Cómo ejecutar un script de Python al iniciar Windows

    Configura un script Python para iniciar con Windows usando la carpeta Inicio, archivos BAT, Task Scheduler, entornos virtuales, logs y

    Ler mais

    Tempo de leitura: 6 minutos
    11/07/2026
    Sistema de backup automático de arquivos usando Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Cómo automatizar copias de seguridad con Python

    Aprende a automatizar copias de seguridad con Python usando pathlib, shutil, fechas, verificación, registros y una estrategia segura de restauración.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Execução de comandos do terminal usando Python
    Automatización y Scripts
    Foto de perfil de Leandro Hirt da Academify

    Subprocess en Python: ejecutar comandos del terminal

    Aprende subprocess en Python para ejecutar comandos, capturar salida, manejar errores, establecer timeouts y evitar riesgos con shell=True.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026