Cómo crear una ayuda «profesional» desde la línea de comandos y cómo obtener los argumentos (parámetros) pasados por línea de comandos a una aplicación/script Python. Mostramos el método usando la librería argparse y cómo obtener los argumentos sin librerías, con argv.

Trabajar con argumentos/parámetros en Python con librería argparse

Para la gestión de los parámetros usaremos el paquete argparse, que suele venir preinstalado en Python. Por lo tanto, en nuestro script Python, añadiremos el import necesario:

Un ejemplo de un procedimiento Python que define unos parámetros (argumentos) para nuestro programa, podría ser:

Como podemos observar en el ejemplo anterior, el procedimiento MostrarArgumentos define los argumentos que admitirá el programa, el tipo de argumento y una descripción que se mostrará si se usa el parámetro -help. El procedimiento devolverá los parámetros definidos, por lo que quedará listo para su uso en el programa, como veremos a continuación.

La librería argparse es muy completa y se puede hacer cualquier combinación con los argumentos, incluso definir los que son obligatorios y hacerlo por grupos.

Ejemplo de uso del procedimiento que define los argumentos en una aplicación Pythton real

En el siguiente enlace mostramos un ejemplo completo del uso del procedimiento MostrarArgumentos, en una aplicación Python real:

Un ejemplo de uso del programa anterior, pasándole unos parámetros/argumentos de ejemplo:

Y si añadimos el parámetro -h, nos devolverá todos los parámetros que admite nuestra aplicación y su correspondiente descripción:

Ejemplo de uso del procedimiento que define los argumentos en una aplicación Pythton real

Argumentos en Python con argv

En caso de no querer usar una librería para trabajar con argumentos, podremos programar nuestra propia captura. Por ejemplo, en el siguiente script Python capturamos los argumentos y los recorremos (iteramos), mostrando todos los argumentos pasados por parámetro al ejecutable:

Guardaremos el código Python anterior en un fichero con el nombre argumentos.py. Para ejecutarlo y probarlo, desde la línea de comandos, ejecutaremos:

Si no le pasamos argumentos, como en el caso anterior, devolverá un argumento, que es el nombre del propio fichero (argumento 0):

Los argumentos que has pasado son:
Argumento 1 -> d:/Mis documentos/ProyectoA/Python/Argumentos/argumentos.py

Si le pasamos dos argumentos:

Devolverá:

Has pasado 3 argumentos por la línea de comandos
Los argumentos que has pasado son:
Argumento 1 -> d:/Mis documentos/ProyectoA/Python/Argumentos/argumentos.py
Argumento 2 -> Argumento1
Argumento 3 -> Argumento2

Recordad que indica que se pasan 3 argumentos porque aunque no se especifique, siempre habrá 1 argumento, el nombre del fichero.

Y, para pasarle argumentos con espacios, usaremos las comillas dobles. Por ejemplo:

Devolverá:

Has pasado 2 argumentos por la línea de comandos
Los argumentos que has pasado son:
Argumento 1 -> d:/Mis documentos/ProyectoA/Python/Argumentos/argumentos.py
Argumento 2 -> Argumento1 con espacios

Argumentos en Python con argv