Como analisar argumentos na linha de comando em Python

How Parse Arguments Command Line Python



Os argumentos da linha de comando são usados ​​para passar dados no programa no momento de sua execução. Este recurso está disponível na maioria das linguagens de programação populares. Mas o processamento de argumentos de linha de comando é diferente para idiomas diferentes. Os valores dos argumentos são fornecidos com o nome do programa no momento de sua execução. A linguagem Python oferece suporte a esse recurso. Como os argumentos da linha de comando são analisados ​​no script Python é mostrado neste artigo.

Analisando o argumento da linha de comando usando sys módulo

Os argumentos da linha de comando são armazenados em uma lista usando sys módulo. sys.argv é usado para ler os valores dos argumentos da linha de comando. O número total de argumentos da linha de comando pode ser contado usando len () função. O uso deste módulo é descrito na parte do artigo.







Exemplo 1: Lendo o número de argumentos e valores de argumento

Crie um arquivo com o seguinte script python. Aqui, os valores do argumento da linha de comando são armazenados na variável, argv como outras línguas. len () método conta o número total de argumentos passados ​​no momento da execução do script. Os valores dos argumentos são impressos como uma matriz no final do script.



# Módulo de importação sys
importar sys

# Imprime o número total de argumentos
imprimir('Total de argumentos:', len(sys.argv))
imprimir('Os valores do argumento são:', p(sys.argv))

Saída:



O script acima é executado aqui usando quatro argumentos de linha de comando. O primeiro argumento é o nome do script e os outros são valores numéricos. A seguinte saída aparecerá após a execução do script.





Exemplo 2: Lendo valores de argumento usando o loop



No exemplo anterior, os valores dos argumentos são impressos como uma matriz. Crie um arquivo com o seguinte script para imprimir o tipo de variável de argumento e imprimir cada valor de argumento em cada linha usando o loop for.

# Módulo de importação sys
importar sys

# Imprima o tipo da variável, sys.argv
imprimir(modelo(sys.argv))

# Imprime cada argumento da linha de comando em cada linha
imprimir('Os argumentos da linha de comando são:')
paraeuno sys.argv:
imprimir(eu)

Saída:

O script acima é executado fornecendo três argumentos com o nome do script. A seguinte saída aparecerá após a execução do script.

Analisando o argumento da linha de comando usando o módulo getopt

Coberto módulo é usado para analisar argumentos de linha de comando com as opções. coberto () método deste módulo é usado para ler os argumentos. Este método possui três argumentos. Os primeiros dois argumentos são obrigatórios e o último argumento é opcional. Os usos desses argumentos são fornecidos abaixo.

args: Ele contém o argumento obtido do argumento da linha de comando.

short_option: Pode ser qualquer letra que passe com o argumento.

long_option: É usado para definir opções longas com duas partes. Estes são o nome da opção e o valor da opção.

Sintaxe: getopt.getopt (args, short_option, [long_option])

Exemplo 3: Lendo valores de argumento usando opções getopt curtas

coberto módulo contém mais recursos do que sys módulo. O exemplo a seguir mostra como opções curtas podem ser usadas em coberto () método. argv A variável armazenará os argumentos da linha de comando omitindo o nome do script. A seguir, duas opções são definidas no coberto () método que pode ser usado com o argumento em tempo de execução. Se ocorrer algum erro, uma mensagem de erro será exibida.

# Importar módulo getopt
importar coberto

# Módulo de importação sys
importar sys

# Armazenar variável de argumento omitindo o nome do script
argv= sys.argv[1:]

Experimente:
# Defina as opções curtas de getopt
opções,args= coberto.coberto(argv, 'x: y:')

# imprime as opções e argumentos
imprimir(opções)
imprimir(args)

exceto coberto.GetoptError:

# Imprime a mensagem de erro se a opção errada for fornecida
imprimir('A opção errada é fornecida')

# Terminar o script
sys.saída(2)

Saída:

Execute o script sem nenhum argumento, argumentos com opções corretas e argumentos com a opção errada.

Exemplo 4: Lendo valores de argumento usando opções getopt curtas e longas

Este exemplo mostra como as opções short e long podem ser usadas com os valores do argumento. Ele adicionará dois números quando '-para' ou '-adicionar' será usado como uma opção e subtrair dois números quando ‘ -s ' ou ' -sub' será usado como uma opção em tempo de execução.

# Importar módulo getopt
importar coberto

# Módulo de importação sys
importar sys

# Armazenar variável de argumento omitindo o nome do script
argv= sys.argv[1:]

# Inicializar variável de resultado
resultado=0

Experimente:

# Defina as opções getopt short e long
opções,args= coberto.coberto(sys.argv[1:], 'Como', ['add =','sub ='])

# Leia cada opção usando o loop for
paraoptar,nervosonoopções:
# Calcule a soma se a opção for -a ou --add
E seoptarno ('-para', '--adicionar'):
resultado= int(argv[1])+int(argv[2])

# Calcule a tração solar se a opção for -s ou --sub
elifoptarno ('-s', '--sub'):
resultado= int(argv[1])-int(argv[2])

imprimir('Resultado =',resultado)

exceto coberto.GetoptError:

# Imprime a mensagem de erro se a opção errada for fornecida
imprimir('A opção errada é fornecida')

# Terminar o script
sys.saída(2)

Saída:

Execute o script sem argumentos e opções, argumentos com a opção ‘-a’, argumentos com a opção ‘-s’ e argumentos com a opção errada.

Analisando o argumento da linha de comando usando o módulo argparse

O módulo Argparse contém muitas opções para ler argumentos de linha de comando. Valores de argumento padrão, o argumento com o tipo de dados, argumentos posicionais, mensagem de ajuda, etc. podem ser fornecidos por este módulo.

Exemplo 5: Lendo argumentos de linha de comando usando argparse

O exemplo a seguir mostra o uso de argparse módulo para ler o argumento da linha de comando. Aqui, duas opções são definidas para a leitura de argumentos de linha de comando. Estes são ‘-N’ ou ‘–name’ e ‘-E’ ou ‘–email’. Se o usuário fornecer qualquer argumento errado, ele mostrará um erro com uma mensagem de uso. Se o usuário fornecer opções corretas com os argumentos, ele exibirá os valores dos argumentos. se o usuário executar o script com a opção ‘–help’, será fornecida a mensagem necessária para executar o script.

# Importar módulo argparse
importarargparse

# Módulo de importação sys
importar sys

# Declare a função para definir os argumentos da linha de comando
defreadOptions(args=sys.argv[1:]):
analisador =argparse.ArgumentParser(Descrição='As listas de comandos de análise.')
analisador.add_argument('-n', '--nome', ajuda='Digite seu nome.')
analisador.add_argument('-E', '--o email', ajuda='Digite seu e-mail.')
opta= analisador.parse_args(args)
Retornaopta

# Chame a função para ler os valores dos argumentos
opções=readOptions(sys.argv[1:])
imprimir(opções.nome)
imprimir(opções.o email)

Saída:

Execute o script com a opção errada, opção correta e opção de ajuda.

Conclusão:

Várias maneiras de ler argumentos de linha de comando são explicadas neste tutorial usando três módulos Python. Espero que este tutorial ajude o codificador que deseja ler dados usando argumentos de linha de comando em python.

Assistir ao vídeo do autor: aqui