¿Qué es argparse en Python?: un breve análisis

| Última modificación: 21 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

El módulo argparse en Python hace parte de su biblioteca estándar y es usado para crera interfaces de línea de comando que hacen posible la interacción con programas de manera más práctica. Se usa mucho cuando estamos creando scripts que aceptan argumentos desde la línea de comandos.

El día de hoy en este artículo te explicaremos qué es argparse en Python y cómo debes hacer uso de este módulo.

argparse en Python

¿Qué es argparse en Python?

El argparse en python es un módulo que hace posible el manejo de argumentos de línea de comandos. En situaciones donde, por ejemplo, tenemos un script que realiza diferentes operaciones matemáticas, podemos usar argparse en Python para permitir que los usuarios elijan qué operación desean realizar y sobre qué números, solo con pasar esos datos como argumentos al ejecutar el script.

El módulo argparse en python nos ofrece la posibilidad de definir qué argumentos espera el script, validarlos posteriormente y, además, genera de forma automática mensajes de ayuda para que los usuarios sepan cómo usar el programa que estés haciendo.

¿Cómo funciona argparse?

El argparse en Python trabaja por medio de la definición de argumentos posicionales y argumentos opcionales. Estos primeros son obligatorios y su valor va a estar determinado por su posición en la línea de comandos; los segundos, en cambio, son opcionales tal y como su nombre lo indica y suelen precederlos un guion o doble guion. Los últimos pueden tener o no un valor asociado.

Abordemos un ejemplo para entender mejor:

import argparse

# Creamos el objeto ArgumentParser
parser = argparse.ArgumentParser(description="Este programa suma dos números")

# Añadimos los argumentos
parser.add_argument("num1", type=int, help="El primer número")
parser.add_argument("num2", type=int, help="El segundo número")

# Parseamos los argumentos
args = parser.parse_args()

# Realizamos la suma
resultado = args.num1 + args.num2
print(f"La suma es: {resultado}")

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Si ejecutas este script desde la línea de comandos, pasarás los números que quieres sumar como argumentos:

python mi_script.py 3 5

El resultado sería:

La suma es: 8

Argumentos posicionales y opcionales con argparse en Python

Como ya hemos mencionado, los argumentos posicionales son los que debes pasar en un orden específico. En el ejemplo de más arriba, los números num1 y num2 son argumentos posicionales, ya que python determina qué hacer con ellos con base en la posición en la que se introducen dentro del código.

En el otro lado tenemos los argumentos opcionales, que permiten modificar el comportamiento del programa sin ser obligatorios. Si, por ejemplo, quieres que el programa tenga una opción para imprimir un mensaje detallado, podrías añadir un argumento opcional como –verbose:

parser.add_argument("--verbose", action="store_true", help="Imprime información detallada")

Veamos un ejemplo más avanzado usando argumentos opcionales

En aras a entender cómo funciona el argparse en python, veamos un ejemplo donde imaginamos que queremos que el programa no solo sume, sino también que multiplique números, y que esto vaya a depender de una opción que el usuario escoja. Para añadir esta flexibilidad con argparse en python podemos escribir lo siguiente:

import argparse

parser = argparse.ArgumentParser(description="Calculadora simple")

# Argumentos posicionales
parser.add_argument("num1", type=int, help="El primer número")
parser.add_argument("num2", type=int, help="El segundo número")

# Argumento opcional
parser.add_argument("--operacion", choices=["suma", "multiplica"], default="suma", help="Especifica la operación")

args = parser.parse_args()

# Lógica según la operación
if args.operacion == "suma":
resultado = args.num1 + args.num2
elif args.operacion == "multiplica":
resultado = args.num1 * args.num2

print(f"El resultado es: {resultado}")

Con este script puedes elegir si sumar o multiplicar los números:

python calculadora.py 3 5 --operacion suma
El resultado es: 8

O bien:

python calculadora.py 3 5 --operacion multiplica
El resultado es: 15

Generación automática de ayuda

Lo mencionamos al principio, una de las mejores características de argparse es que tiene la capacidad de generar de forma automática un mensaje de ayuda para tus scripts. Si ejecutas el comando –help podrás ver una explicación detallada de los argumentos:

python calculadora.py --help

La salida sería algo como:

usage: calculadora.py [-h] [--operacion {suma,multiplica}] num1 num2

Calculadora simple

positional arguments:
num1 El primer número
num2 El segundo número

optional arguments:
-h, --help show this help message and exit
--operacion {suma,multiplica}
Especifica la operación (default: suma)

Este tipo de documentación es demasiado importante si creas herramientas para otros usuarios, ya que facilita enormemente la comprensión de cómo se debe usar el programa.

¿Quieres seguir aprendiendo sobre python y otros lenguajes de programación? Únete a nosotros en el bootcamp de programación desde cero y conoce toda la fundamentación teórica y práctica que necesitas para iniciarte en el mundo tech. ¡Inscríbete ahora y comienza a construir un futuro lleno de oprtunidades!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.