Python getopt vs argparse comparado

Python getopt vs argparse comparado

Se necesitan más códigos para invocar el argumento del sistema de matriz del sistema en el paquete "getopt", que es menos eficiente que el paquete "argparse". Sin embargo, parece beneficioso poder descifrar, escribir y usar este producto. Este código es fácilmente entendido por los novatos y no requiere ningún comentario. El módulo "getopt" es un analizador de opción de línea de comando con una API que pretende ser familiar para aquellos que han usado la función "getopt ()". Los usuarios pueden contemplar aprovechar el módulo "argparse" en lugar de la función "getopt ()" si deseamos escribir menos código con mejor asistencia y mensajes de error. La herramienta de escritura de interfaz de línea de comandos para el lenguaje de programación de Python es "Argparse", un componente de la biblioteca estándar. Crear configuraciones de línea de comandos fáciles de usar en el módulo "Argparse" es simple. El programa especifica los argumentos que busca, luego "Argparse" utiliza cómo extraer esos argumentos del argumento del sistema. Además, el módulo "Argparse" crea automáticamente mensajes de ayuda de uso.

Sintaxis

La sintaxis para Python "Getopt" se proporciona a continuación:


Esta sintaxis tiene casi tres partes: "Args" se refiere a los argumentos que se pasarían en la cadena o función, mientras que la segunda parte, "Opciones", se refiere al script que busca una cadena de letras de opciones. Se debe colocar un colon después de cualquier opción que exija una discusión. La última parte en la sintaxis, "long_options", determina la lista de nombres para las opciones largas en un formato de cadena, y un signo igual debe seguir argumentos opcionales.

La sintaxis para Python Argparse se da a continuación:


La sintaxis de "Argparse" primero está creando una función y, en segundo lugar, crea o asigna los argumentos del sistema a la función que se creará.

Ejemplo#1: Utilizando el módulo getopt () para crear una función para obtener argumentos mediante letras abreviadas

Ahora, discutiremos cómo podemos crear nuestra función para los argumentos del sistema y llamarlos mediante la abreviatura de cartas que son "G" y "H" que usamos en este artículo.


El fragmento de código para "getopt ()" se explica aquí.

Discutamos el ejemplo del código que utilizamos donde primero importamos la biblioteca de "sys", y la segunda biblioteca que usamos es "getopt". Luego creamos nuestra función llamada "Your_Name", que almacena dos variables en ella, que son "Sur_name" y "Middle_Name". En el momento de la definición de función, no se asigna ningún valor a estas dos variables, "Sur_name" y "Middle_Name". Luego creamos una variable de almacenamiento de memoria "argv" que almacenará "sys.argv [2:] ".

Para aplicar el fenómeno del uso de las letras de abreviatura, utilizamos el "Getopt.Función getopt () "en el almacenamiento de la variable o de memoria" argv "y la asignó dos letras abreviadas," g "y" h ". En la condición "excepto", utilizamos la función "print ()" para imprimir la declaración "Error ha generado" si el usuario presiona cualquier tecla que sea una clave excepto "G" o "H".

Para las opciones en un argumento, utilizamos una declaración condicional para ese propósito donde la condición "si" estará relacionada con el "sur_name" si presionamos la tecla "g" y la condición "más" se vinculará con la "h" clave si lo presionamos. Mostraría el "Middle_Name" que está presente en nuestro argumento. En la última, utilizamos la función "print ()" para imprimir el "Sur_name" junto con el "Middle_Name" en la pantalla de salida. Y para finalizar la función, devolvemos nuestra función en la última usando "Your_Name ()".


Nuestra instantánea de salida muestra que utilizamos primero "Desktop", ya que nuestro Python se guarda en el escritorio. Después de escribir "Desktop", escribimos el nombre del archivo "You_Name.py ”y presione enter. Cuando presionamos nuestra tecla abreviada, "G", muestra "Sur_name", que es "AQSA", y luego presione "H"; Mostrará "Aqsa Yasin Python" junto con el nombre completo.

Ejemplo#2: Utilizando el módulo getopt () para crear una función para obtener argumentos de la forma completa de letras



En este ejemplo del módulo "getopt ()", hemos importado las mismas bibliotecas, "sys" y "getopt", como en el ejemplo anterior. La función se crea como "Your_Name". Esta función almacena dos variables, "First_Name" y "Sur_name", donde a ambos valores se les asigna "Ninguno". Para pasar el argumento del sistema, utilizamos "SYS.Argv [1:]. En la condición de "prueba", usamos letras completas para el nombre. En lugar de "G" y "H", los consideramos como "First_Name" y "Sur_name". La condición en "excepto" almacenará la declaración de impresión para el caso. Si se genera el error, se ejecutará excepto la condición si un argumento no está presente en la línea de comando.

La opción en el fenómeno de argumento es similar al ejemplo anterior. Pero, aquí en la declaración condicional de "IF" y "Else", usaremos "First_Name" y "Sur_name" en lugar de "G" y "H" y variable que usamos para almacenarlo es "F" y "L". La última función "print ()" se usa ahora para imprimir "First_Name" junto con el "Sur_name" y luego devolver la función usando "Your_Name ()".


Cuando abrimos la línea de comando, iremos al "escritorio" a medida que el archivo de código se guarda en el escritorio y luego escriba el nombre del archivo "your_name.py "donde".Py "se usa como un archivo de extensión para Python. Devolverá "First_Name" como "AQSA" y "Sur_name" como "Yasin". Debido a la función "print ()" utilizada en la última línea, imprimirá el nombre "aqsa yasin" nuevamente en letras capitalizadas .

Ejemplo#3: Utilizando el módulo argparse () para crear un programa de línea de comandos que acepte argumentos relacionados

Pasar el argumento del módulo de la línea de comando "Argparse" es mucho mejor para los usuarios del módulo "Getopt". Para explicar el módulo "Argparse", utilizamos los siguientes pasos, que se dan a continuación:


Primero creamos un archivo en nuestro sistema con el nombre "Argparse.py "ya que el archivo está relacionado con Python, por lo que utilizamos el".extensión de py ". Este archivo, "Argparse.py ”, almacena el código de Python. Abrimos el terminal de la línea de comando, y primero, insertaremos este comando para alcanzar ese archivo "Nano Argparse.py ".


Este es el fragmento de código en nuestro archivo "Argparse.py ". Ahora, si discutimos este código, podemos ver al principio que hemos importado la biblioteca de "Argparse" primero. Aquí, para pasar dos argumentos en el código, utilizamos un total de dos argumentos como "Command_1" y "Command_2". Los valores de argumentos asignados "Command_1" son "Inglaterra," Australia "y" Gales ". Los valores de argumento asignados "Command_2" como "Namibia" y "China". Luego creamos un "analizador" para aprobar el argumento con la descripción de la "lista de países".

El argumento aprobado es "Comando", donde el tipo que usamos es "cadena". Y luego, creamos "Args", que realizará el argumento analizado por "Parser.parse_args () ". A continuación, creamos "países", que mantendrán los argumentos como "comando", y luego imprimimos ambos argumentos utilizando la función "print ()".


Para mostrar el primer argumento almacenado en "Command_1", escribiremos las líneas anteriores en el terminal de línea de comando.


Después de pasar el comando, mostrará los argumentos en "Command_1", que son "Inglaterra", "Australia" y "Gales".


Para llegar a los argumentos en el "Command_2", escribiremos "Argparse.Py Command_2 "y presione Entrar en CMD.


Después de presionar Enter, mostrará los argumentos en "Command_2", que son "Namibia" y "China".


Si queremos llegar a la descripción de nuestro archivo "Argparse.py ", escribiremos este" argparse.py -h ”en la línea de comando.


Luego mostrará la descripción completa de nuestro archivo de Python donde denota "Lista de países" como descripción, y los argumentos posicionales aquí son "Comando".

Conclusión

En este artículo, cubrimos la comparación entre dos módulos de Python, que son "Getopt" y "Argparse". Como hemos visto a través de la discusión a través de nuestros ejemplos, determinamos que Python "Argparse" es un módulo más efectivo y poderoso que "Getopt". Los dos primeros ejemplos cubren el módulo "Getopt" de Python, y los otros dos ejemplos cubren "Argparse" para los argumentos del sistema.