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

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

Analizar argumento de línea de comandos usando sys módulo

Los argumentos de la línea de comandos se almacenan en una lista utilizando sys módulo. sys.argv se usa para leer los valores de los argumentos de la línea de comandos. El número total de argumentos de 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: Leer el número de argumentos y valores de argumentos

Cree un archivo con el siguiente script de Python. Aquí, los valores de argumento 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 aprobados al momento de ejecutar el script. Los valores de argumento se imprimen como una matriz al final del script.

# Módulo de importación SYS
Sys de importación
# Imprimir el número total de argumentos
Imprimir ('Argumentos totales:', Len (SYS.argv))
Imprimir ('Los valores del argumento 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 usando el bucle

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

# Módulo de importación SYS
Sys de importación
# Imprima el tipo de variable, sys.argv
Imprimir (tipo (SYS.argv))
# Imprima cada argumento de línea de comandos en cada línea
imprimir ('Los argumentos de la línea de comandos son:')
para 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.

Poner el argumento de la línea de comandos utilizando el módulo Getopt

Getopt El módulo se utiliza 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.

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

Short_option: Puede ser cualquier carta que pase con el argumento.

long_option: Se usa 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 (args, short_option, [long_option])

Ejemplo 3: Lectura de valores de argumentos utilizando opciones cortas de Getopt

getopt El módulo contiene más características que sys módulo. El siguiente ejemplo muestra cómo se pueden usar 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 usar con el argumento en el tiempo de ejecución. Si ocurre algún error, entonces se mostrará un mensaje de error.

# Módulo de importación de getopt
importar getopt
# Módulo de importación SYS
Sys de importación
# Almacenamiento de argumento Variable omitiendo el nombre del script
argv = sys.Argv [1:]
intentar:
# Definir opciones cortas de Getopt
opciones, args = getopt.getopt (argv, 'x: y:')
# Imprima las opciones y el argumento
Imprimir (opciones)
Imprimir (args)
Excepto Getopt.Getopterror:
# Imprima el mensaje de error si se proporciona la opción incorrecta
imprimir ('se proporciona la opción incorrecta')
# Terminar el script
sys.Salir (2)

Producción:

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

Ejemplo 4: Lectura de valores de argumentos utilizando opciones de getopt corta y larga

Este ejemplo muestra cómo se pueden usar opciones cortas y largas con los valores de argumento. Agregará 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 opción en el tiempo de ejecución.

# Módulo de importación de getopt
importar getopt
# Módulo de importación SYS
Sys de importación
# Almacenamiento de argumento Variable omitiendo el nombre del script
argv = sys.Argv [1:]
# Inicializar la variable de resultado
resultado = 0
intentar:
# Defina Getopt Opciones cortas y largas
opciones, args = getopt.Getopt (SYS.argv [1:], 'a: s', ['add =', 'sub ='])
# Lea cada opción usando para bucle
para opt, arg en opciones:
# Calcule la suma si la opción es -a o --add
Si opta en ('-a', '--add'):
resultado = int (argv [1]) + int (argv [2])
# Calcule la SunTraction si la opción es -S o --n -Sub
Elif opt en ('-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
imprimir ('se proporciona la opción incorrecta')
# Terminar el script
sys.Salir (2)

Producción:

Ejecute el script sin ningún argumento y opción, argumentos con la opción '-A', argumentos con la opción '-s' y argumentos con la opción incorrecta.

Analizar el argumento de la línea de comandos utilizando el módulo Argparse

El módulo Argparse contiene muchas opciones para leer argumentos de línea de comandos. Valores de argumento predeterminado, 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 línea de comandos usando Argparse

El siguiente ejemplo muestra el uso de argparse Módulo para leer argumento de línea de comandos. Aquí, se definen dos opciones para leer argumentos de línea de comandos. Estos son '-n' o '-name' y '-e' o '-Mail'. Si el usuario proporciona algún argumento incorrecto, mostrará un error con un mensaje de uso. Si el usuario proporciona opciones correctas con los argumentos, mostrará los valores de los argumentos. Si el usuario ejecuta el script con la opción '-help', entonces proporcionará el mensaje necesario para ejecutar el script.

# Importar módulo argparse
importar argparse
# Módulo de importación SYS
Sys de importación
# Declarar función para definir argumentos de línea de comandos
Def ReadOptions (args = sys.argv [1:]):
parser = argparse.ArgumentParser (description = "Los comandos de análisis enumeras.")
pasador.add_argument ("-n", "--name", ayuda = "Escriba su nombre.")
pasador.add_argument ("-e", "--Mail", ayuda = "Escriba su correo electrónico.")
opts = analizador.parse_args (args)
OPTS DE RETORACIÓN
# Llamar a la función para leer los valores de los argumentos
Opciones = ReadOptions (SYS.argv [1:])
Imprimir (opciones.nombre)
Imprimir (opciones.correo electrónico)

Producción:

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

Conclusión:

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

Mira el video del autor: aquí