viernes, 6 de marzo de 2026

Automatizacion con Python - Cap1 - parte 5

Python // Automation Cookbook

Capítulo 1: Comencemos Nuestro Viaje de Automatización

Parte 5: Argumentos de Línea de Comandos + Resumen

Muchas tareas pueden estructurarse mejor como una interfaz de línea de comandos (CLI) que acepta diferentes parámetros. Python incluye el módulo argparse en la biblioteca estándar para crear CLIs profesionales con mínimo esfuerzo.

RECETA_09

Agregar Argumentos de Línea de Comandos

Estructura Recomendada

estructura del script
# IMPORTS

def main(parámetros):
    # LÓGICA PRINCIPAL

if __name__ == '__main__':
    # DEFINIR PARSER
    # PARSEAR ARGS
    # VALIDAR SI ES NECESARIO
    main(argumentos)

Paso 1: Script Básico

recipe_cli_step1.py
import argparse

def main(number):
    print('#' * number)

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('number', type=int, help='Un número')
    args = parser.parse_args()
    
    main(args.number)
python recipe_cli_step1.py 4
####
python recipe_cli_step1.py -h
usage: recipe_cli_step1.py [-h] number

positional arguments:
number Un número

optional arguments:
-h, --help show this help message and exit

Paso 2: Argumento Opcional

recipe_cli_step2.py
import argparse

def main(character, number):
    print(character * number)

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('number', type=int, help='Un número')
    parser.add_argument('-c', type=str, help='Carácter a imprimir',
                        default='#')
    args = parser.parse_args()
    main(args.c, args.number)
python recipe_cli_step2.py 5 -c m
mmmmm

Paso 3: Banderas (Flags)

recipe_cli_step3.py
import argparse

def main(character, number):
    print(character * number)

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('number', type=int, help='Un número')
    parser.add_argument('-c', type=str, help='Carácter', default='#')
    parser.add_argument('-U', action='store_true', default=False,
                        dest='uppercase',
                        help='Convertir a mayúscula')
    args = parser.parse_args()
    
    if args.uppercase:
        args.c = args.c.upper()
    
    main(args.c, args.number)
python recipe_cli_step3.py 4 -c f -U
FFFF

Reglas de argparse

  • Argumentos con - son opcionales; sin guión son posicionales
  • Siempre define un valor default para opcionales
  • Agrega siempre help descriptivo a cada argumento
  • Usa type para validación automática
  • store_true/store_false para crear banderas booleanas
  • Usa dest para renombrar argumentos internamente

Argumentos Largos

python
parser.add_argument('-v', '--verbose', 
                    action='store_true', 
                    default=False,
                    help='Habilitar salida detallada')
# Acepta tanto -v como --verbose
Recuerda: "Lo explícito es mejor que lo implícito". Usa nombres largos como --configuration-file en lugar de solo -c para hacer tu CLI más intuitiva.

Resumen del Capítulo 1

01 // Entornos Virtuales

Crear entornos aislados con python -m venv para gestionar dependencias de forma independiente.

02 // Paquetes de Terceros

Instalar y administrar dependencias con pip y requirements.txt para replicabilidad.

03 // Formateo de Cadenas

Usar el método format() y f-strings para crear texto estructurado con precisión.

04 // Manipulación de Cadenas

Métodos como split(), join(), replace() para transformar texto.

05 // Extracción de Datos

Técnicas manuales para parsear cadenas estructuradas en tipos nativos de Python.

06 // Módulo Parse

Herramienta de terceros que invierte format() para extraer datos de forma elegante.

07 // Expresiones Regulares

Patrones poderosos con el módulo re para coincidencia y extracción de texto.

08 // Argumentos CLI

Crear interfaces de línea de comandos profesionales con argparse.

Basado en "Python Automation Cookbook" // Jaime Buelta

Traducción al español // Capítulo 1, Parte 5 de 5 - FIN DEL CAPÍTULO