Comprobar el argumento de Argparse en Python

Ammar Ali 21 junio 2023
  1. Compruebe el argumento de argparse en Python
  2. Compruebe si el argumento opcional argparse está establecido
Comprobar el argumento de Argparse en Python

Este tutorial discutirá el uso de argparse, y verificaremos si existe un argumento en argparse usando una declaración condicional y el nombre del argumento en Python.

Compruebe el argumento de argparse en Python

La biblioteca argparse de Python se utiliza en la línea de comandos para escribir interfaces fáciles de usar. Por ejemplo, podemos ejecutar un script usando el nombre del script y proporcionar los argumentos necesarios para ejecutar el script.

Podemos agregar argumentos después del nombre del archivo de secuencia de comandos, y la biblioteca argparse convertirá estos argumentos en objetos que se pueden usar dentro de la secuencia de comandos para realizar la tarea requerida. También podemos adjuntar mensajes de ayuda, uso y error con cada argumento para ayudar al usuario.

Por ejemplo, si un usuario ingresa un argumento no válido, la biblioteca argparse mostrará un error y cómo el usuario debe ingresar el argumento. Por ejemplo, analicemos un ejemplo simple de la biblioteca argparse.

Vea el código a continuación.

import argparse

My_parser = argparse.ArgumentParser()
My_parser.parse_args()

Producción :

PS C:\Users\ammar> python test.py -h
usage: test.py [-h]

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

Para ejecutar el script anterior, debemos escribir python test.py -h en el cmd (símbolo del sistema) y asegurarnos de que Python se agregue a la ruta del sistema o las variables ambientales en Windows. Podemos usar una ruta completa al archivo python.exe si no está agregado.

También debemos asegurarnos de que el directorio actual del símbolo del sistema esté configurado en el directorio del archivo de Python; si no es así, debemos proporcionar la ruta completa al archivo de Python.

Por ejemplo, supongamos que tenemos que agregar Python a la ruta del sistema, y tampoco estamos en el directorio actual del archivo de Python. Debemos cambiar la primera línea en la salida de arriba a la línea de abajo.

& C:/Users/ammar/python.exe "c:/Users/ammar/test.py" -h

La línea anterior se prueba en Windows PowerShell, y para cmd, tenemos que eliminar el & al comienzo de la línea. En el resultado anterior, podemos observar que solo se usa un argumento como ayuda.

Podemos usar la función add_argument() para agregar argumentos en el analizador de argumentos. Podemos establecer dos tipos de argumento: uno es un argumento posicional y el otro es opcional.

Debemos usar el guión simple - o doble -- antes del argumento para que sea opcional. También podemos agregar ayuda para un argumento usando el argumento ayuda y estableciendo su valor en una cadena dentro de la función agregar_argumento().

Podemos agregar texto antes y después de la sección de ayuda usando la descripción y el argumento del epílogo dentro de la función ArgumentParser(). El parse_args() convierte los argumentos pasados en el símbolo del sistema en objetos y los devuelve, que pueden usarse para realizar operaciones más adelante.

Por ejemplo, tomemos un argumento de cadena de un usuario y mostrémoslo. Vea el código a continuación.

import argparse
import string

My_parser = argparse.ArgumentParser(
    description="text before help.....", epilog="text after help....."
)
My_parser.add_argument("firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()

print(My_args.firstArg)

Producción :

PS C:\Users\ammar> python test.py
usage: test.py [-h] firstArg
test.py: error: the following arguments are required: firstArg


PS C:\Users\ammar> python test.py -h
usage: test.py [-h] firstArg

text before help.....

positional arguments:
  firstArg    You can use string here

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

text after help.....


PS C:\Users\ammar> python test.py hello
hello

Hemos ejecutado el archivo de Python anterior tres veces y podemos ver el resultado en la salida. La primera vez, ejecutamos el archivo sin ningún argumento y un mensaje de error decía que se requería un argumento, que no se pasó.

La segunda vez, ejecutamos el script con el argumento -h, que se usa como ayuda, y el código muestra el uso y la ayuda del script. Ejecutamos el script por tercera vez usando una cadena que se muestra en el símbolo del sistema.

Podemos usar el argumento type de la función add_argument() para establecer el tipo de datos del argumento, como str para cadena e int para el tipo de datos entero. Todos los argumentos pasados se almacenan en la variable My_args, y podemos usar esta variable para verificar si un argumento en particular se pasa o no.

Compruebe si el argumento opcional argparse está establecido

En el caso de argumentos opcionales, si no se pasa ningún argumento, el método parse_args() devolverá Ninguno para ese argumento específico. Podemos usar declaraciones condicionales para verificar si el argumento es Ninguno o no, y si el argumento es Ninguno, eso significa que el argumento no se pasa.

Por ejemplo, agreguemos un argumento opcional y verifiquemos si el argumento se pasa o no, y mostraremos un resultado en consecuencia. Vea el código a continuación.

import argparse
import string

My_parser = argparse.ArgumentParser(
    description="text before help.....", epilog="text after help....."
)
My_parser.add_argument("-firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()

if My_args.firstArg is not None:
    print("Argument passed")
else:
    print("No Argument passed")

Producción :

PS C:\Users\ammar> python test.py
No Argument passed

PS C:\Users\ammar> python test.py -firstArg hello
Argument passed

Ejecutamos el script anterior dos veces, con y sin argumento, y mostramos un texto en consecuencia. Podemos usar las declaraciones is not None y is None con una declaración condicional para determinar si se pasa un argumento o no.

Tenga en cuenta que en el caso de argumentos opcionales, también tenemos que usar su nombre antes de pasar un argumento. Asegúrese de que el argumento que queremos verificar no tenga un valor predeterminado establecido porque el argumento nunca será Ninguno en el caso de un valor predeterminado.

Por ejemplo, agreguemos un valor predeterminado en el código anterior usando la palabra clave default dentro de la función add_argument() y repitamos el procedimiento anterior. Vea el código a continuación.

import argparse
import string

My_parser = argparse.ArgumentParser(
    description="text before help.....", epilog="text after help....."
)
My_parser.add_argument(
    "-firstArg", help="You can use string here", type=str, default="default_value"
)
My_args = My_parser.parse_args()

if My_args.firstArg is not None:
    print("Argument passed")
else:
    print("No Argument passed")

Producción :

PS C:\Users\ammar> python test.py
Argument passed

PS C:\Users\ammar> python test.py -firstArg hello
Argument passed

Podemos observar en el resultado anterior que si no pasamos un argumento, el código seguirá mostrando el argumento pasado debido al valor predeterminado. Podemos usar la función add_argument() varias veces para agregar múltiples argumentos.

Si queremos limitar al usuario en la elección de entradas, podemos usar el argumento opciones dentro de add_argument() y establecer su valor en una lista de valores que solo se permitirán pasar como argumentos al script. .

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook