IOKELU
Nivel: Avanzado – Guía 19
💡 Prueba el código:
Ejecuta cualquier ejemplo en nuestra consola interactiva: Abrir consola de Python →

Argparse avanzado en Python

argparse es el módulo estándar para crear interfaces de línea de comandos (CLI). En esta guía aprenderás a crear comandos profesionales, subcomandos, validaciones, argumentos opcionales y obligatorios, tipos personalizados y CLI modulares.

Tabla de contenidos

  • Argumentos básicos
  • Argumentos opcionales y obligatorios
  • Tipos personalizados
  • Subcomandos
  • Flags y booleanos
  • Validación avanzada
  • CLI modulares
  • Ejercicios
  • Mini‑proyecto

1. Argumentos básicos

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("nombre")
args = parser.parse_args()

print("Hola", args.nombre)

2. Argumentos opcionales y obligatorios

parser.add_argument("--edad", type=int, required=True)
parser.add_argument("--debug", action="store_true")

3. Tipos personalizados

def positivo(x):
    x = int(x)
    if x <= 0:
        raise argparse.ArgumentTypeError("Debe ser positivo")
    return x

parser.add_argument("--cantidad", type=positivo)

4. Subcomandos

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest="comando")

crear = sub.add_parser("crear")
crear.add_argument("nombre")

borrar = sub.add_parser("borrar")
borrar.add_argument("id")

5. Flags y booleanos

parser.add_argument("-v", "--verbose", action="store_true")

6. Validación avanzada

args = parser.parse_args()

if args.edad < 18:
    parser.error("Debe ser mayor de edad")

7. CLI modulares

# cli/main.py
import argparse
from cli.comandos import registrar, eliminar

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest="cmd")

p1 = sub.add_parser("registrar")
p1.add_argument("nombre")

p2 = sub.add_parser("eliminar")
p2.add_argument("id")

args = parser.parse_args()

if args.cmd == "registrar":
    registrar(args.nombre)
elif args.cmd == "eliminar":
    eliminar(args.id)

8. Ejercicios

9. Mini‑proyecto: CLI profesional de gestión

import argparse

def registrar(nombre):
    print("Registrado:", nombre)

def eliminar(id):
    print("Eliminado:", id)

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest="cmd")

p1 = sub.add_parser("registrar")
p1.add_argument("nombre")

p2 = sub.add_parser("eliminar")
p2.add_argument("id")

args = parser.parse_args()

if args.cmd == "registrar":
    registrar(args.nombre)
elif args.cmd == "eliminar":
    eliminar(args.id)

Siguiente guía

Proyecto avanzado →