Se você desenvolveu um script ou aplicativo Python destinado a ser executado principalmente em emuladores de terminais ou mesmo aplicativos de GUI, adicionar argumentos na linha de comando pode melhorar sua usuidade, legibilidade de código, estrutura de aplicativos e facilidade de uso geral do aplicativo para os usuários finais. Esses argumentos da linha de comando também são chamados de "opções" ou "switches" e funcionam de maneira semelhante aos argumentos que você geralmente vê em scripts de bash e outros programas baseados em C / C ++.
Para adicionar argumentos aos scripts python, você terá que usar um módulo embutido chamado "argparse". Como o nome sugere, ele analisa os argumentos da linha de comando usados durante o lançamento de um script ou aplicativo Python. Esses argumentos analisados também são verificados pelo módulo "argparse" para garantir que eles sejam de "tipo" adequado. Erros são levantados se houver valores inválidos em argumentos.
O uso do módulo Argparse pode ser melhor compreendido através de exemplos. Abaixo estão algumas amostras de código que irão você começar com o módulo ArgParse.
Exemplo 1: gerar argumento de ajuda e mensagem
Considere o exemplo de código abaixo:
importar argparseA primeira declaração importa o módulo "argparse". Em seguida, uma nova instância do objeto "ArgumentParser" é criada e uma breve descrição do programa é fornecida como um argumento. O objeto ArgumentParser é necessário para converter valores de argumento da linha de comando em tipos de dados entendidos pelo Python. Isso é feito pelo método "parse_args" de objeto ArgumentParser, como mostrado na última declaração.
Supondo que você tenha salvado o exemplo de código declarado acima em um arquivo chamado “Teste.PY ”, executando os comandos abaixo receberá mensagens de ajuda relacionadas ao programa.
$ ./teste.py -hVocê deve obter alguma saída semelhante a isso:
Uso: teste.py [-h]Observe que nenhuma lógica para lidar com argumentos analisados e convertê -los em objetos foi adicionada à amostra de código mencionada acima. Portanto, mensagens de ajuda para argumentos individuais não são mostradas na saída. Depois de adicionar lógica para lidar com valores de argumentos analisados em seu programa, as mensagens de ajuda começarão a mostrar a descrição para argumentos individuais.
Exemplo 2: lidar com um argumento de string
Para adicionar argumentos aceitáveis pelo seu script python, você precisa usar o método "add_argument". Dê uma olhada no seguinte código:
importar argparseUma nova declaração foi adicionada mostrando o uso do método "add_argument". Qualquer argumento adicionado ao lançar o script será tratado como um objeto "Print_string" por "ArgumentParser".
Observe que, por padrão, o método "add_argument" trata os valores recuperados dos argumentos como strings, para que você não precise especificar explicitamente o "tipo" neste caso. Um valor padrão de "nenhum" também é atribuído a argumentos adicionados, a menos que substitua.
Mais uma vez, dê uma olhada na mensagem de ajuda:
Uso: teste.py [-h] [print_string]Uma das linhas na saída diz “argumentos posicionais”. Como nenhuma palavra -chave para argumento é definida, atualmente o argumento é tratado como um "argumento posicional" em que a ordem e a posição do argumento fornecido têm efeito direto no programa. Os argumentos posicionais também são obrigatórios, a menos que você mude manualmente o comportamento deles.
Para definir e analisar argumentos opcionais, você pode usar "-" (Double Dash) e alterar seus valores padrão usando o argumento "padrão".
importar argparseAgora, quando você executa “teste.script py ”sem nenhum argumento, você deve obter“ uma string aleatória.”Como saída. Opcionalmente, você também pode usar a palavra-chave "-print_string" para imprimir qualquer string de sua escolha.
$ ./teste.py --print_string linuxhint.com Linuxhint.comObserve que você pode tornar obrigatório um argumento opcional usando um argumento adicional "exigido = true".
Por fim, você também pode definir versões abreviadas do argumento usando "-" (single Dash) para reduzir a verbosidade.
importar argparseExecutar o seguinte comando deve lhe dar o mesmo resultado acima:
$ ./teste.py -p linuxhint.comExemplo 3: lidar com um argumento inteiro
Para lidar com argumentos que precisam de valores de número inteiro, você precisa definir a palavra -chave "tipo" como "int" para permitir a validação e lançar erros, caso a condição não seja atendida.
importar argparseTente executar o seguinte comando:
$ ./teste.py -p linuxhint.comVocê deve obter um erro como este:
Uso: teste.py [-h] [-p print_string]O fornecimento de um valor inteiro fornecerá o resultado correto:
$ ./teste.py -p 1000 1000Exemplo 4: lidar com as alternativas verdadeiras e falsas
Você pode passar argumentos sem valores para tratá -los como bandeiras verdadeiras e falsas usando o argumento de "ação".
importar argparseExecute o comando abaixo para obter um simples "verdadeiro" como a saída:
$ ./teste.py -pSe você executar o script sem o argumento "-p", um valor "falso" será atribuído. O valor "store_true" da palavra-chave "ação" atribui um valor "verdadeiro" à variável "print_string" sempre que o argumento "-p" é explicitamente especificado, caso contrário, false é atribuído à variável.
Exemplo 5: Trate os valores do argumento como lista
Se você deseja obter vários valores de uma só vez e armazená -los na lista, precisa fornecer palavra -chave "NARGS" no seguinte formato:
importar argparseExecute o seguinte comando para testar o código acima:
$ ./teste.py -p “a” “b”Você deve obter alguma saída como esta:
['a', 'b']Conclusão
O módulo "argparse" é bastante abrangente, com toneladas de opções para ajustar o comportamento dos aplicativos da linha de comando e analisar valores fornecidos pelo usuário. Esses exemplos tocam apenas o uso básico do módulo "argparse". Para aplicações avançadas e complexas, você pode precisar de implementações diferentes. Visite a documentação oficial para obter uma explicação completa do módulo.