Automatizar

Automatizar un script de Python con el Programador de tareas de Windows

Cómo hacer que tu script de Python se ejecute solo cada día, semana o a la hora que quieras, usando el Programador de tareas de Windows. Con el detalle del .bat que hace que funcione de verdad.

Escribiste un script que hace algo útil —envía un reporte, respalda archivos, limpia una carpeta— y ahora quieres que corra solo, sin que tengas que abrirlo cada vez. En Windows eso lo resuelve el Programador de tareas, una herramienta que ya viene instalada. Aquí cómo dejar tu script corriendo en automático, con el paso que casi todos hacen mal.

El error típico: apuntar directo al .py

Lo intuitivo es decirle al Programador de tareas “ejecuta este archivo .py”. Y ahí empiezan los problemas: la tarea corre pero el script no hace nada, o se abre y cierra al instante, o falla sin explicación. La causa es que Windows no siempre sabe con qué versión de Python abrirlo, ni desde qué carpeta.

La forma que funciona de verdad es envolver el script en un pequeño archivo .bat que deje todo explícito. Es el paso que convierte un dolor de cabeza en algo que simplemente funciona.

Paso 1: crea el archivo .bat

Abre el Bloc de notas y escribe estas dos líneas, ajustando las rutas a las tuyas:

cd C:\Users\TuUsuario\mis_scripts
python mi_script.py

La primera línea (cd) mueve la ejecución a la carpeta donde vive tu script — importante si tu script lee o escribe archivos con rutas relativas. La segunda lo ejecuta.

Guarda el archivo con extensión .bat (por ejemplo ejecutar.bat), asegurándote de que el Bloc de notas no le añada .txt al final (elige “Todos los archivos” al guardar).

Truco para verificar la ruta de Python: si python a secas no funciona en el .bat, abre una terminal, escribe where python y usa la ruta completa que te devuelva en lugar de solo python.

Paso 2: prueba el .bat a mano

Antes de programarlo, haz doble clic en el .bat. Si tu script corre bien, estás listo. Si falla, arréglalo ahora: es mil veces más fácil depurarlo aquí que dentro del Programador de tareas, donde no ves los errores. Este paso te ahorra horas.

Paso 3: crea la tarea programada

Abre el Programador de tareas (búscalo en el menú inicio). Luego:

  1. En el panel derecho, “Crear tarea básica”.
  2. Ponle un nombre y descripción.
  3. Elige el desencadenador: diario, semanal, al iniciar sesión, etc. Y la hora.
  4. En “Acción”, elige “Iniciar un programa”.
  5. En “Programa o script”, busca y selecciona tu archivo .bat.
  6. Finaliza.

Listo: tu script se ejecutará solo según la programación que elegiste.

Ajustes que conviene revisar

Una vez creada la tarea, entra a sus propiedades (doble clic sobre ella) y revisa dos cosas útiles:

En la pestaña “General”, la opción “Ejecutar tanto si el usuario inició sesión como si no” hace que la tarea corra aunque no tengas la sesión abierta — útil para scripts que deben correr de madrugada. Y “Ejecutar con los privilegios más altos” si tu script necesita permisos de administrador.

En “Configuración”, puedes definir qué pasa si la tarea falla: reintentar, cada cuánto, cuántas veces. Útil para scripts que dependen de internet o de un recurso que a veces no está.

Cómo saber si funcionó

El Programador de tareas guarda un historial. Si una tarea no hizo lo esperado, entra a ella y mira la pestaña “Historial” o la columna “Resultado de la última ejecución”: un 0x0 significa que terminó bien. Cualquier otro código indica un fallo, y ahí es donde el paso 2 (probar el .bat a mano) demuestra su valor.

Con esto tienes scripts que trabajan solos: reportes que salen cada lunes, respaldos nocturnos, limpiezas automáticas. Combínalo con el artículo de enviar correos con Python y tendrás avisos automáticos que llegan sin que muevas un dedo.


¿Tu tarea corre pero el script falla solo cuando lo lanza el Programador, no a mano? Escríbeme desde contacto con el código de resultado y lo revisamos.

← Más de Automatizar