Como analisar os argumentos da linha de comando em Python

Como analisar os argumentos da linha de comando em Python
Os argumentos da linha de comando são usados ​​para passar dados no programa no momento da execução do programa. Este recurso está disponível na maioria das linguagens de programação populares. Mas o processamento dos argumentos da linha de comando é diferente para diferentes idiomas. Os valores dos argumentos são fornecidos com o nome do programa no momento da execução do programa. Python Language suporta 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 dos argumentos da linha de comando são armazenados na variável, argv como outros idiomas. Len () Método conta o número total de argumentos aprovados no momento da execução do script. Os valores dos argumentos são impressos como uma matriz no final do script.

# Importar módulo SYS
Importar sistemas
# Imprimir número total de argumentos
Imprimir ('Total de argumentos:', Len (SYS.argv))
print ('Os valores do argumento são:', str (sys.argv))

Saída:

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

Exemplo 2: Lendo valores de argumento usando o loop

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

# Importar módulo SYS
Importar sistemas
# Imprima o tipo de variável, sistemas.argv
Imprimir (tipo (SYS.argv))
# Imprima cada argumento da linha de comando em cada linha
Print ('Os argumentos da linha de comando são:')
para eu em sys.argv:
impressão (i)

Saída:

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

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

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

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

Short_Option: Pode ser qualquer carta 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: Leitura de valores de argumento usando opções de getopt curtas

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

# Importar módulo getOpt
importar getOpt
# Importar módulo SYS
Importar sistemas
# Armazenar variável de argumento omitindo o nome do script
argv = sys.argv [1:]
tentar:
# Defina opções curtas getóticas
opções, args = getOpt.getOpt (argv, 'x: y:')
# Imprima as opções e argumentos
Imprimir (opções)
Impressão (args)
Exceto getOpt.Getopterror:
# Imprima a mensagem de erro se a opção errada for fornecida
print ('A opção errada é fornecida')
# Encerrar 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: Leitura de valores de argumento usando opções de getopt curtas e longas

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

# Importar módulo getOpt
importar getOpt
# Importar módulo SYS
Importar sistemas
# Armazenar variável de argumento omitindo o nome do script
argv = sys.argv [1:]
# Inicialize a variável de resultado
resultado = 0
tentar:
# Definir opções de curta e longa
opções, args = getOpt.getOpt (sys.argv [1:], 'a: s', ['add =', 'sub =']))
# Leia cada opção usando o loop
Para optar, arg nas opções:
# Calcule a soma se a opção for -a ou --dd
se optar em ('-a', '--add'):
resultado = int (argv [1]) + int (argv [2])
# Calcule a suntração se a opção for -s ou - -sub
Elif Opt em ('-s', '--sub'):
resultado = int (argv [1]) - int (argv [2])
print ('resultado =', resultado)
Exceto getOpt.Getopterror:
# Imprima a mensagem de erro se a opção errada for fornecida
print ('A opção errada é fornecida')
# Encerrar o script
sys.saída (2)

Saída:

Execute o script sem argumentos e opções, argumentos com a opção '-a', argumentos com 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 da linha de comando. Valores de argumento padrão, o argumento com o tipo de dados, argumentos posicionais, mensagem de ajuda, etc. pode ser fornecido por este módulo.

Exemplo 5: Leitura de argumentos da linha de comando usando argparse

O exemplo a seguir mostra o uso de argparse Módulo para ler argumento da linha de comando. Aqui, duas opções são definidas para ler argumentos da linha de comando. Estes são '-n' ou '-name' e '-e' ou '-mail'. Se o usuário fornecer algum 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 do argumento. Se o usuário executar o script com a opção '-Help', ele fornecerá a mensagem necessária para executar o script.

# Importar módulo argparse
importar argparse
# Importar módulo SYS
Importar sistemas
# Declare a função para definir argumentos de linha de comando
Def ReadOptions (args = sys.argv [1:]):
analisador = argparse.ArgumentParser (Description = "As listas de comandos de análise.")
analisador.add_argument ("-n", "--name", help = "Digite seu nome.")
analisador.add_argument ("-e", "-email", help = "Digite seu e-mail.")
opts = analisador.parse_args (args)
Optos de retorno
# Chame a função para ler os valores do argumento
Opções = ReadOptions (SYS.argv [1:])
Imprimir (opções.nome)
Imprimir (opções.e-mail)

Saída:

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

Conclusão:

Várias maneiras de ler os argumentos da linha de comando são explicados 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.

Assista ao vídeo do autor: aqui