Comprobar el argumento de Argparse en Python
-
Compruebe el argumento de
argparse
en Python -
Compruebe si el argumento opcional
argparse
está establecido
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. .