Pitón

Cómo analizar argumentos en la línea de comandos en Python

Cómo analizar argumentos en la línea de comandos en Python
Los argumentos de la línea de comandos se utilizan para pasar datos en el programa en el momento de la ejecución del programa. Esta función está disponible en la mayoría de los lenguajes de programación populares. Pero el procesamiento de los argumentos de la línea de comandos es diferente para diferentes idiomas. Los valores de los argumentos se dan con el nombre del programa en el momento de ejecutar el programa. El lenguaje Python admite esta función. En este artículo se muestra cómo se analizan los argumentos de la línea de comandos en la secuencia de comandos de Python.

Analizando el argumento de la línea de comandos usando sys módulo

Los argumentos de la línea de comandos se almacenan en una lista usando sys módulo.  sys.argv se utiliza para leer los valores de los argumentos de la línea de comandos. El número total de argumentos de la línea de comandos se puede contar usando len () función. El uso de este módulo se describe en la parte del artículo.

Ejemplo 1: lectura del número de argumentos y valores de los argumentos

Crea un archivo con la siguiente secuencia de comandos de Python.  Aquí, los valores de los argumentos de la línea de comandos se almacenan en la variable, argv como otros idiomas. len () El método cuenta el número total de argumentos pasados ​​en el momento de ejecutar el script. Los valores de los argumentos se imprimen como una matriz al final del script.

# Importar módulo sys
importar sys
# Imprime el número total de argumentos
print ('Argumentos totales:', len (sys.argv))
print ('Los valores de los argumentos son:', str (sys.argv))

Producción:

El script anterior se ejecuta aquí usando cuatro argumentos de línea de comandos. El primer argumento es el nombre del script y otros son valores numéricos. La siguiente salida aparecerá después de ejecutar el script.

Ejemplo 2: lectura de valores de argumentos utilizando el bucle

En el ejemplo anterior, los valores de los argumentos se imprimen como una matriz. Cree un archivo con la siguiente secuencia de comandos para imprimir el tipo de variable de argumento e imprima cada valor de argumento en cada línea utilizando el bucle for.

# Importar módulo sys
importar sys
# Imprime el tipo de variable, sys.argv
imprimir (tipo (sys.argv))
# Imprime cada argumento de la línea de comandos en cada línea
print ('Los argumentos de la línea de comando son:')
porque yo en sys.argv:
imprimir (i)

Producción:

El script anterior se ejecuta proporcionando tres argumentos con el nombre del script. La siguiente salida aparecerá después de ejecutar el script.

Analizando el argumento de la línea de comandos usando el módulo getopt

Getopt El módulo se usa para analizar los argumentos de la línea de comandos con las opciones. getopt () El método de este módulo se utiliza para leer los argumentos. Este método tiene tres argumentos. Los dos primeros argumentos son obligatorios y el último argumento es opcional. Los usos de estos argumentos se dan a continuación.

argumentos: Contiene el argumento tomado del argumento de la línea de comandos.

opción_corta: Puede ser cualquier letra que pase con el argumento.

opción_larga: Se utiliza para definir opciones largas con dos partes. Estos son el nombre de la opción y el valor de la opción.

Sintaxis: getopt.getopt (argumentos, opción_corta, [opción_larga])

Ejemplo 3: lectura de valores de argumentos usando opciones breves de getopt

getopt El módulo contiene más funciones que sys módulo. El siguiente ejemplo muestra cómo se pueden utilizar las opciones cortas en getopt () método. argv La variable almacenará los argumentos de la línea de comandos omitiendo el nombre del script. A continuación, se definen dos opciones en el getopt () método que se puede utilizar con el argumento en tiempo de ejecución. Si ocurre algún error, aparecerá un mensaje de error.

# Importar módulo getopt
importar getopt
# Importar módulo sys
importar sys
# Almacenar variable de argumento omitiendo el nombre del script
argv = sys.argv [1:]
 
intentar:
# Definir opciones cortas de getopt
opciones, args = getopt.getopt (argv, 'x: y:')
# imprime las opciones y el argumento
imprimir (opciones)
imprimir (argumentos)
 
excepto getopt.GetoptError:
# Imprima el mensaje de error si se proporciona la opción incorrecta
print ('Se proporciona la opción incorrecta')
# Terminar el guión
sys.salida (2)

Producción:

Ejecute el script sin ningún argumento, argumentos con las opciones correctas y argumentos con la opción incorrecta.

Ejemplo 4: lectura de valores de argumentos usando opciones getopt cortas y largas

Este ejemplo muestra cómo se pueden usar las opciones cortas y largas con los valores de los argumentos. Sumará dos números cuando '-a' o '-agregar' se utilizará como una opción y restará dos números cuando '-s' o '-sub' se utilizará como una opción en el tiempo de ejecución.

# Importar módulo getopt
importar getopt
# Importar módulo sys
importar sys
# Almacenar variable de argumento omitiendo el nombre del script
argv = sys.argv [1:]
# Inicializar variable de resultado
resultado = 0
 
intentar:
 
# Definir opciones getopt cortas y largas
opciones, args = getopt.getopt (sys.argv [1:], 'a: s', ['agregar =', 'sub ='])
 
# Lea cada opción usando el bucle for
para optar, arg en opciones:
# Calcula la suma si la opción es -a o --add
si opta por ('-a', '--add'):
resultado = int (argv [1]) + int (argv [2])
# Calcule la atracción solar si la opción es -s o --sub
elif opt in ('-s', '--sub'):
resultado = int (argv [1]) - int (argv [2])
 
print ('Resultado =', resultado)
excepto getopt.GetoptError:
# Imprima el mensaje de error si se proporciona la opción incorrecta
print ('Se proporciona la opción incorrecta')
# Terminar el guión
sys.salida (2)

Producción:

Ejecute el script sin argumentos ni opciones, argumentos con la opción '-a', argumentos con la opción '-s' y argumentos con la opción incorrecta.

Analizando el argumento de la línea de comandos usando el módulo argparse

El módulo Argparse contiene muchas opciones para leer argumentos de la línea de comandos. Valores de argumento predeterminados, el argumento con el tipo de datos, argumentos posicionales, mensaje de ayuda, etc. puede ser proporcionado por este módulo.

Ejemplo 5: lectura de argumentos de la línea de comandos usando argparse

El siguiente ejemplo muestra el uso de argumentar módulo para leer el argumento de la línea de comandos. Aquí, se definen dos opciones para leer argumentos de línea de comandos. Estos son '-n' o '-nombre' y '-e' o '-email'. Si el usuario proporciona un argumento incorrecto, mostrará un error con un mensaje de uso. Si el usuario proporciona las opciones correctas con los argumentos, mostrará los valores de los argumentos. si el usuario ejecuta la secuencia de comandos con la opción '-help', proporcionará el mensaje necesario para ejecutar la secuencia de comandos.

# Importar módulo argparse
importar argparse
# Importar módulo sys
importar sys
# Declarar función para definir argumentos en la línea de comandos
def readOptions (args = sys.argv [1:]):
analizador = argparse.ArgumentParser (description = "Las listas de comandos de análisis.")
analizador.add_argument ("- n", "--name", help = "Escriba su nombre.")
analizador.add_argument ("- e", "--email", help = "Escriba su correo electrónico.")
opts = analizador.parse_args (argumentos)
volver optas
# Llame a la función para leer los valores de los argumentos
opciones = readOptions (sys.argv [1:])
imprimir (opciones.nombre)
imprimir (opciones.Email)

Producción:

Ejecute el script con la opción incorrecta, la opción correcta y la opción de ayuda.

Conclusión:

En este tutorial se explican varias formas de leer los argumentos de la línea de comandos mediante el uso de tres módulos de Python. Espero que este tutorial ayude al codificador que quiere leer datos usando argumentos de línea de comandos en Python.

Ver el video del autor: aquí

Las 5 mejores cartas de captura de juegos
Todos hemos visto y amado la transmisión de juegos en YouTube. PewDiePie, Jakesepticye y Markiplier son solo algunos de los mejores jugadores que han ...
Cómo desarrollar un juego en Linux
Hace una década, no muchos usuarios de Linux predecían que su sistema operativo favorito algún día sería una plataforma de juegos popular para videoju...
Puertos de código abierto de motores de juegos comerciales
Las recreaciones gratuitas, de código abierto y de motores de juegos multiplataforma se pueden usar para jugar títulos de juegos antiguos y también al...