Python GOTOpt vs Argparse comparado

Python GOTOpt vs Argparse comparado

Mais códigos são necessários para invocar o argumento do sistema de matriz do sistema no pacote "getOpt", que é menos eficiente que o pacote "argparse". No entanto, parece benéfico poder decifrar, escrever e usar este produto. Este código é facilmente entendido por novatos e não requer comentários. O módulo "Getopt" é um analisador de escolha de linha de comando com uma API que se destina a ser familiar para aqueles que usaram a função "getOpt ()". Os usuários podem pensar em alavancar o módulo "argparse", em vez da função "getOpt ()", se desejarmos escrever menos código com melhor assistência e mensagens de erro. A ferramenta de escrita de interface da linha de comando para a linguagem de programação Python é "argparse", um componente da biblioteca padrão. Criando configurações de linha de comando amigáveis ​​no módulo "argparse" é simples. O programa especifica os argumentos que procura, então "argparse" utiliza como extrair esses argumentos do argumento do sistema. Além disso, o módulo "argparse" cria automaticamente mensagens de ajuda de uso.

Sintaxe

A sintaxe para Python "getOpt" é fornecida abaixo:


Essa sintaxe tem quase três partes: “Args” refere -se aos argumentos que seriam passados ​​na string ou função, enquanto a segunda parte, “opções”, refere -se ao script que procura uma sequência de letras de opção. Um cólon deve ser colocado após qualquer opção que exija um argumento. A última parte da sintaxe, "Long_Options", determina a lista de nomes para as opções longas em um formato de string, e um sinal igual deve seguir argumentos opcionais.

A sintaxe para Python argparse é dada abaixo:


A sintaxe de "argparse" está primeiro criando uma função e, em segundo lugar, criando ou atribuindo os argumentos do sistema à função a ser criada.

Exemplo#1: Utilizando o módulo GOTOPT () para criar uma função para obter argumentos por letras abreviadas

Agora, discutiremos como podemos criar nossa função para os argumentos do sistema e chamá -los pela abreviação de letras que são "G" e "H" que usamos neste artigo.


O snippet de código para "getOpt ()" é explicado aqui.

Vamos discutir o exemplo de código que usamos onde primeiro importamos a biblioteca de "sys", e a segunda biblioteca que usamos é "genove". Em seguida, criamos nossa função chamada "your_name", que armazena duas variáveis ​​nela, que são "Sur_name" e "Middle_name". No momento da definição da função, nenhum valor é atribuído a essas duas variáveis, "Sur_name" e "Middle_Name". Em seguida, criamos uma variável de armazenamento de memória "argv" que estaria armazenando "sys.argv [2:] ”.

Para aplicar o fenômeno de usar as cartas de abreviação, usamos o “GetOpt.função getOpt () ”na variável ou armazenamento de memória“ argv ”e atribuiu duas letras abreviadas,“ G ”e“ H ”. Na condição "Exceto", usamos a função "print ()" para imprimir a declaração "erro gerou" se o usuário pressionar qualquer tecla que seja qualquer tecla, exceto "g" ou "h".

Para opções em um argumento, usamos uma declaração condicional para esse fim em que a condição "se" estará relacionada ao "Sur_name" se pressionarmos a tecla "G" e a condição "else" será vinculada ao "H" tecla se pressionarmos. Exibiria o "Middle_Name" que está presente em nosso argumento. Na última, usamos a função "print ()" para imprimir o "SUR_NAME" junto com o "Middle_Name" na tela de saída. E para encerrar a função, retornamos nossa função no último usando "your_name ()".


Nosso instantâneo de saída mostra que usamos o “Desktop” primeiro, pois nosso Python é salvo no desktop. Depois de digitar "Desktop", escrevemos o nome do arquivo "You_Name.py ”e pressione Enter. Quando pressionamos nossa tecla abreviada, "G", ela exibe "SUR_NAME", que é "aqsa", e depois pressione "H"; Ele exibirá "aqsa yasin python" junto com o nome completo.

Exemplo#2: Utilizando o módulo GOTOPT () para criar uma função para obter argumentos da forma completa das letras



Neste exemplo do módulo "getOpt ()", importamos as mesmas bibliotecas, "sys" e "getopt", como no exemplo anterior. A função é criada como "Your_name". Esta função armazena duas variáveis, "First_Name" e "SUR_NAME", onde ambos os valores são atribuídos "nenhum". Para passar no argumento do sistema, usamos “sistemas.argv [1:]. Na condição de "tentativa", usamos letras completas para o nome. Em vez de "G" e "H", nós os consideramos "First_Name" e "SUR_NAME". A condição em "exceto" armazenará a declaração de impressão para o caso. Se o erro estiver sendo gerado, ele será executado, exceto a condição se um argumento não estiver presente na linha de comando.

A opção no fenômeno do argumento é semelhante ao exemplo anterior. Mas, aqui na declaração condicional de "se" e "else", usaremos "First_Name" e "SUR_NAME" em vez de "G" e "H" e Variable que usamos para armazenar é "F" e "L". A última função "print ()" é usada agora para imprimir "First_Name" junto com o "SUR_NAME" e depois retorna a função usando "your_name ()".


Quando abrirmos a linha de comando, iremos para "Desktop" à medida que o arquivo de código é salvo na área.py "onde".py ”é usado como um arquivo de extensão para Python. Ele retornará "First_Name" como "aqsa" e "Sur_name" como "yasin". Devido à função "print ()" usada na última linha, ele imprimirá o nome "Aqsa yasin" novamente em cartas capitalizadas .

Exemplo#3: Utilizando o módulo argparse () para criar um programa de linha de comando que aceite argumentos relacionados

Passando o argumento da linha de comando "ArgParse" é muito melhor para os usuários do módulo "GOTOPT". Para explicar o módulo "argparse", usamos as seguintes etapas, que são dadas abaixo:


Primeiro criamos um arquivo em nosso sistema com o nome “Argparse.py ”como o arquivo está relacionado ao python, então usamos o“.Py ”extensão. Este arquivo, “argparse.py ”, armazena o código Python. Abrimos o terminal da linha de comando e, primeiro, inseriremos este comando para alcançar esse arquivo “Nano Argparse.py ".


Este é o trenó de código em nosso arquivo “argparse.py ". Agora, se discutirmos este código, podemos ver no início que importamos a biblioteca de "argparse" primeiro. Aqui, para passar dois argumentos no código, usamos um total de dois argumentos como "command_1" e "command_2". Os valores de argumento "Command_1" atribuídos são "Inglaterra," Austrália "e" País de Gales ". O "Command_2" atribuiu valores de argumento como "Namíbia" e "China". Em seguida, criamos um "analisador" para passar o argumento com a descrição de "Lista de países".

O argumento aprovado é "comando", onde o tipo que usamos é "string". E então, criamos "args", que fará o argumento analisar por "analisador.parse_args () ”. Em seguida, criamos "países", que manterão os argumentos como "comando" e, em seguida, imprimimos os dois argumentos usando a função "print ()".


Para exibir o primeiro argumento armazenado em "Command_1", digitaremos as linhas anteriores no terminal da linha de comando.


Depois de passar o comando, ele exibirá os argumentos em "Command_1", que são "Inglaterra", "Austrália" e "País de Gales".


Para alcançar os argumentos no "command_2", digitaremos "argparse.py command_2 ”e pressione Enter em cmd.


Depois de pressionar Enter, ele exibirá os argumentos em "Command_2", que são "Namíbia" e "China".


Se queremos alcançar a descrição do nosso arquivo “argparse.Py ", vamos digitar este" argparse.py -h ”na linha de comando.


Em seguida, ele exibirá toda a descrição do nosso arquivo python, onde denota “lista de países” como descrição, e os argumentos posicionais aqui são “comando”.

Conclusão

Neste artigo, abordamos a comparação entre dois módulos de Python, que são "genovet" e "argparse". Como vimos através da discussão através de nossos exemplos, determinamos que o Python "argparse" é um módulo mais eficaz e poderoso do que "Getopt". Os dois primeiros exemplos abrangem o módulo Python "Getopt", e os outros dois exemplos cobrem "argparse" para os argumentos do sistema.