HOWTO · Batch
Ejecutar archivo de Python en Batch Script
Este tutorial discutirá cómo ejecutar un archivo de Python en Batch Script.
En esta página
Ejecutar un script de Python desde un archivo por lotes es una tarea de Windows: los ejemplos siguientes usan archivos .bat y el Símbolo del sistema. Necesitas tener instalado un intérprete de Python. Puedes usar el comando python si Windows lo encuentra mediante PATH, o indicar directamente la ruta de un python.exe concreto.
Comprueba Python y prepara los archivos
Abre el Símbolo del sistema y ejecuta python --version. Si aparece un número de versión, significa que el comando encuentra un intérprete; no demuestra que todas las instalaciones de Python estén en PATH. Si Windows indica que no reconoce python, usa la ruta completa del intérprete que se muestra más adelante o añade la instalación de Python que quieras usar a PATH. Guarda el archivo por lotes y el script de Python en una ubicación conocida para tener claras sus rutas.
Ejecuta un script de Python desde un archivo por lotes
Guarda un archivo por lotes, como run_python.bat, junto a hello.py. El comando @echo off oculta los comandos mientras se ejecutan. pause es opcional: úsalo si abres el archivo por lotes con un doble clic y quieres que la ventana permanezca abierta; omítelo si quieres que otro programa o una terminal reciba el control en cuanto termine el script.
Una llamada mínima desde un archivo por lotes consiste en @echo off seguido de python hello.py. Si el archivo por lotes puede iniciarse desde otro directorio de trabajo, usa una ruta basada en la ubicación del propio archivo: python "%~dp0hello.py". %~dp0 se expande al disco y al directorio que contienen el archivo por lotes, incluida la barra invertida final.
Elige un intérprete de Python por su ruta completa
Usa la ruta explícita del ejecutable si python no está disponible mediante PATH o si el archivo por lotes debe seleccionar una instalación concreta. En el archivo por lotes, escribe "C:\Program Files\Python312\python.exe" "%~dp0hello.py" y sustituye la ruta de ejemplo por la ubicación de tu equipo. Pon ambas rutas entre comillas para que los espacios se interpreten como parte del nombre del archivo. Comprueba que las rutas del ejecutable y del script existan; una ruta incorrecta falla aunque esté entre comillas.
Pasa argumentos al script de Python
En un archivo por lotes, %* reenvía todos los argumentos proporcionados al archivo. Por ejemplo, python "%~dp0greet.py" %* los reenvía a greet.py. Llama al archivo por lotes con valores entre comillas cuando contengan espacios, como en run_greet.bat "Ada Lovelace". Las comillas mantienen el nombre unido como un solo argumento.
El script de Python puede leer esos valores mediante sys.argv. Guarda este código como greet.py y luego llámalo con el comando por lotes anterior. Si no se proporciona ningún nombre, el script usa uno predeterminado, así que también puede ejecutarse por sí solo.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
import sys
name = sys.argv[1] if len(sys.argv) > 1 else "friend"
print(f"Hello, {name}!")
Hello, friend!
Resuelve problemas de rutas y de ejecución habituales
Si el Símbolo del sistema indica que no reconoce python, comprueba el comando con python --version y luego usa la ruta completa de python.exe o corrige PATH. Si Python se inicia, pero no puede abrir el script, verifica el nombre y la ubicación del archivo; %~dp0 resulta útil cuando el archivo por lotes debe encontrar un script vecino sin importar cuál sea el directorio actual. Si una ruta contiene espacios, escríbela entre comillas dobles. Si el script se inicia, pero indica que falta un módulo, instala esa dependencia en el mismo entorno de Python que selecciona el archivo por lotes. Estos comandos usan la sintaxis de los archivos por lotes de Windows y no funcionan sin cambios en los intérpretes de comandos de macOS o Linux.