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.
¿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 semanaSi 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!