Fundamentos de los argumentos de línea de comandos en Python
Trabajar con argumentos de línea de comandos es una habilidad fundamental para desarrollar scripts en Python flexibles y fáciles de usar. En lugar de codificar datos directamente en el programa, los desarrolladores pueden pasar parámetros al ejecutar el script. En Python, el módulo argparse, incluido en la biblioteca estándar, es la herramienta más utilizada para procesar argumentos de forma potente y sencilla.
Ventajas de usar argumentos de línea de comandos
El uso de argumentos de línea de comandos en Python ofrece múltiples beneficios:
- Mayor flexibilidad del programa al poder cambiar su comportamiento sin modificar el código fuente
- Control del comportamiento del programa sin necesidad de editar el código
- Facilidad para automatizar tareas y crear herramientas CLI
- Integración sencilla de scripts en pipelines y procesos CI/CD
- Pruebas más simples del programa con diferentes parámetros
Ejemplos de programas con argumentos de línea de comandos
Muchas herramientas populares utilizan activamente argumentos de línea de comandos:
- Instaladores de paquetes (pip, apt, yarn)
- Herramientas de gestión de archivos (tar, zip, rsync)
- Sistemas de compilación (make, cmake, gradle)
- Herramientas de desarrollo (git, docker, kubectl)
- Scripts propios para automatizar flujos de trabajo
Importar y configurar el módulo argparse
El módulo argparse está incluido en la biblioteca estándar de Python desde las versiones 2.7 y 3.2. No requiere instalación adicional de paquetes.
import argparse
Crear un analizador básico
Para empezar a trabajar con argumentos, primero debes crear una instancia de la clase ArgumentParser:
parser = argparse.ArgumentParser(description="Descripción del programa")
Primer ejemplo de uso de argparse
Veamos un script simple que recibe un nombre de usuario y muestra un saludo personalizado:
import argparse
parser = argparse.ArgumentParser(description="Programa de saludo simple")
parser.add_argument("name", help="Nombre del usuario")
args = parser.parse_args()
print(f"¡Hola, {args.name}!")
El script se ejecuta de la siguiente manera:
python script.py Carlos
Resultado de la ejecución:
¡Hola, Carlos!
Tipos de argumentos en argparse
Argumentos obligatorios
Los argumentos obligatorios son parámetros sin los cuales el programa no puede ejecutarse. Se definen sin prefijos y el usuario debe proporcionarlos obligatoriamente.
parser.add_argument("filename", help="Nombre del archivo a procesar")
parser.add_argument("output_dir", help="Directorio para guardar los resultados")
Argumentos opcionales
Los argumentos opcionales suelen comenzar con un guion (-) para la forma corta o dos guiones (--) para la forma larga. Proporcionan funcionalidad adicional al programa.
parser.add_argument("-v", "--verbose", help="Mostrar información detallada", action="store_true")
parser.add_argument("-o", "--output", help="Archivo para guardar los resultados")
Trabajar con tipos de datos de argumentos
Por defecto, todos los argumentos se tratan como cadenas de texto. Para especificar un tipo de dato diferente, se usa el parámetro type:
parser.add_argument("number", type=int, help="Ingresa un número entero")
parser.add_argument("price", type=float, help="Precio del producto")
parser.add_argument("enabled", type=bool, help="Activar la función")
Al pasar un n