Volver
#python · 15 abr 2026 · 2 min de lectura

Automatizando tareas repetitivas con Python

Una introducción práctica para convertir flujos de trabajo manuales en scripts de una sola línea.

Demo

¿Por qué automatizar?

Todo desarrollador tiene un conjunto de tareas que repite a diario: renombrar archivos, parsear logs, enviar reportes, mover datos entre servicios. Python es una de las mejores herramientas para convertir esos pasos manuales en un único comando.

En este post voy a recorrer un ejemplo real: un script que vigila una carpeta, renombra los archivos nuevos según un patrón y registra cada acción en un log.


El script

import time
import logging
from pathlib import Path
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

LOG_FILE = Path("watcher.log")
WATCH_DIR = Path("~/Descargas").expanduser()

logging.basicConfig(
    filename=LOG_FILE,
    level=logging.INFO,
    format="%(asctime)s  %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
)


class RenameHandler(FileSystemEventHandler):
    def on_created(self, event):
        if event.is_directory:
            return

        src = Path(event.src_path)
        timestamp = time.strftime("%Y%m%d_%H%M%S")
        dst = src.with_name(f"{timestamp}_{src.name}")
        src.rename(dst)
        logging.info(f"Renombrado: {src.name}{dst.name}")
        print(f"[+] {dst.name}")


if __name__ == "__main__":
    observer = Observer()
    observer.schedule(RenameHandler(), str(WATCH_DIR), recursive=False)
    observer.start()
    print(f"Vigilando {WATCH_DIR} — presioná Ctrl+C para detener")
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

Analizando el código

watchdog

watchdog es una librería multiplataforma que envuelve los eventos de filesystem del sistema operativo (inotify en Linux, FSEvents en macOS, ReadDirectoryChangesW en Windows). Sin polling — el OS le notifica a Python en el momento exacto en que algo cambia.

Instalala con:

pip install watchdog

FileSystemEventHandler

Subclaseamos el handler y sobreescribimos on_created. Otros hooks disponibles:

MétodoSe dispara cuando…
on_createdSe crea un archivo o carpeta
on_modifiedCambia el contenido de un archivo
on_deletedSe elimina un archivo o carpeta
on_movedSe renombra o mueve un archivo

Logging

logging.basicConfig escribe cada renombre en watcher.log con timestamp. Útil para auditar o debuggear después.


Ejecutarlo como servicio en segundo plano

En Linux/macOS podés usar nohup:

nohup python watcher.py &

En Windows, envolvelo en un .bat y programalo con el Programador de Tareas, o usá NSSM para correrlo como servicio de Windows.


Próximos pasos

  • Agregar un archivo de configuración (config.toml) para que el patrón de renombre sea configurable sin editar el código
  • Enviar una notificación de escritorio con plyer cuando se renombre un archivo
  • Filtrar por extensión — por ejemplo, solo renombrar archivos .pdf

El código completo está disponible en GitHub.

Compartir