Cómo ejecutar un programa Python desde la línea de comandos

PythonBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá la habilidad fundamental de ejecutar programas de Python desde la línea de comandos. Este método es esencial para la automatización, la creación de scripts y la implementación de aplicaciones. Lo guiaremos a través de la creación de un script de Python, su ejecución y el paso de argumentos al mismo, todo dentro de la interfaz de línea de comandos.

Crear y Ejecutar un Script Simple de Python

La forma más común de ejecutar un programa de Python es escribiendo tu código en un archivo con extensión .py y luego ejecutando ese archivo usando el intérprete de Python desde tu terminal. Empecemos creando un clásico programa "Hola, Mundo!".

Primero, necesitas crear un nuevo archivo. En el explorador de archivos del WebIDE, a la izquierda, haz clic derecho en el espacio vacío del directorio project y selecciona "New File". Nombra el archivo hello.py.

A continuación, abre el archivo hello.py y añade el siguiente código de Python. Este código utiliza la función incorporada print() para mostrar un mensaje en la consola.

print("Hello, LabEx!")

Ahora que has creado el script, puedes ejecutarlo. Abre la terminal integrada en tu WebIDE (si no está abierta, puedes usar el menú Terminal > New Terminal). La terminal debería abrirse en el directorio /home/labex/project, donde guardaste tu archivo.

Para ejecutar el script, escribe el comando python seguido del nombre de tu archivo:

python hello.py

Después de presionar Enter, verás la salida de tu script impresa directamente en la terminal.

Hello, LabEx!

Has creado y ejecutado con éxito tu primer script de Python desde la línea de comandos.

Uso de Argumentos de Línea de Comandos

Ejecutar scripts desde la línea de comandos se vuelve aún más potente cuando puedes pasarles información en tiempo de ejecución. Estas piezas de información se llaman argumentos de línea de comandos. El módulo sys de Python proporciona una forma sencilla de acceder a ellos.

Creemos un nuevo script que salude a un usuario por su nombre, con el nombre proporcionado como argumento de línea de comandos.

Crea un nuevo archivo llamado greet.py en el directorio /home/labex/project.

Añade el siguiente código a greet.py. Este script importa el módulo sys. Los argumentos de línea de comandos se almacenan en la lista sys.argv. sys.argv[0] es siempre el nombre del script en sí, y los argumentos subsiguientes comienzan desde sys.argv[1].

import sys

## Obtener el nombre del primer argumento de línea de comandos
name = sys.argv[1]

print(f"Hello, {name}!")

Ahora, ejecuta este script desde la terminal, pero esta vez, añade un nombre después del nombre del archivo del script. Por ejemplo, usemos "World".

python greet.py World

El script tomará "World" como argumento y lo usará en la salida.

Hello, World!

Puedes intentar ejecutarlo con tu propio nombre para ver cómo cambia la salida.

python greet.py LabEx
Hello, LabEx!

Esta técnica hace que tus scripts sean flexibles y reutilizables para diferentes entradas.

Hacer los Scripts Más Robustos

¿Qué sucede si ejecutas el script greet.py del paso anterior sin proporcionar un nombre? Intentémoslo.

python greet.py

Te encontrarás con un error.

Traceback (most recent call last):
  File "/home/labex/project/greet.py", line 4, in <module>
    name = sys.argv[1]
IndexError: list index out of range

Este IndexError ocurre porque el script intenta acceder a sys.argv[1], pero como no se proporcionó ningún argumento, este índice no existe. Un script robusto debería manejar estos casos con gracia.

Modifiquemos greet.py para verificar si se proporcionó un argumento. Si no es así, usará un nombre predeterminado. Podemos verificar el número de elementos en la lista sys.argv usando la función len(). Si len(sys.argv) es mayor que 1, significa que se proporcionó al menos un argumento.

Actualiza tu archivo greet.py con el siguiente código:

import sys

if len(sys.argv) > 1:
    ## Usa el argumento proporcionado si existe
    name = sys.argv[1]
else:
    ## Usa un nombre predeterminado si no se proporciona ningún argumento
    name = "World"

print(f"Hello, {name}!")

Ahora, tu script es más robusto. Ejecútalo de nuevo sin un argumento:

python greet.py

Esta vez, se ejecuta sin errores y utiliza el nombre predeterminado.

Hello, World!

Y todavía funciona correctamente cuando proporcionas un argumento:

python greet.py LabEx
Hello, LabEx!

Manejar errores potenciales y proporcionar comportamientos predeterminados son prácticas clave para escribir aplicaciones de línea de comandos confiables.

Resumen

En este laboratorio, has aprendido las habilidades esenciales para ejecutar programas de Python desde la línea de comandos. Comenzaste creando y ejecutando un script simple. Luego, progresaste para hacer tus scripts más dinámicos e interactivos utilizando argumentos de línea de comandos a través del módulo sys. Finalmente, aprendiste a hacer tus scripts más robustos manejando casos en los que los argumentos podrían faltar. Estas son habilidades fundamentales para cualquier desarrollador de Python que quiera crear herramientas de línea de comandos o automatizar tareas.