Argumentos de linha de comando em Python
-
Use o módulo
sys
para processar argumentos de linha de comando em Python -
Use o módulo
getopt
para processar argumentos de linha de comando em Python -
Use o módulo
argparse
para processar argumentos de linha de comando em Python
Os argumentos da linha de comando são os valores fornecidos na janela da linha de comando durante a execução do arquivo. Eles são confortáveis porque nos permitem passar os valores durante a execução do programa.
Em Python, diferentes módulos podem ser usados para processar argumentos de linha de comando, que são discutidos abaixo.
Use o módulo sys
para processar argumentos de linha de comando em Python
O sys.argv()
é usado para armazenar os argumentos fornecidos na linha de comando em uma estrutura do tipo lista. O nome do arquivo é considerado o primeiro argumento.
Por exemplo,
import sys
print("Arguments without the script name ", (len(sys.argv) - 1))
print("Arguments given ")
for i in range(1, len(sys.argv)):
print(sys.argv[i])
No exemplo acima, passamos alguns argumentos em tempo de execução e exibimos o número total de argumentos e seus valores.
Use o módulo getopt
para processar argumentos de linha de comando em Python
O módulo getopt
também processa argumentos de linha de comando. Isso nos permite validar os valores fornecidos. Podemos fornecer valores com o argumento junto com strings de opção que o script pode reconhecer. Este módulo trabalha com o módulo sys para um melhor processamento.
O construtor getopt()
é usado para inicializar o objeto, que analisa os argumentos. Ele retorna um getopt.error
quando a opção não é reconhecida da lista de argumentos.
Nós o usamos no código abaixo.
import getopt
import sys
lst = sys.argv[1:]
options = "abc:"
long_options = ["A_Message", "B_Message", "C_Message"]
try:
arguments, values = getopt.getopt(lst, options, long_options)
for currentArgument, currentValue in arguments:
if currentArgument in ("-a", "--A_Message"):
print("Message A received")
elif currentArgument in ("-b", "--B_Message"):
print("Message B received")
elif currentArgument in ("-c", "--C_Message"):
print("Message C received")
except getopt.error as err:
print("Error")
Use o módulo argparse
para processar argumentos de linha de comando em Python
O módulo argparse é de longe o módulo mais conveniente para trabalhar com argumentos de linha de comando. Este módulo oferece muita flexibilidade, pois pode lidar com argumentos posicionais, argumentos opcionais e também especificar seu tipo.
Podemos colocar alguns valores padrão caso algum argumento esteja faltando e até mesmo exibir uma mensagem de ajuda.
A função ArgumentParser()
cria um objeto analisador. A função parse.args()
lê os argumentos da linha de comando.
Por exemplo,
import argparse
parser = argparse.ArgumentParser(description="Which Message?")
parser.add_argument("a")
parser.add_argument("b")
args = parser.parse_args()
print(args.a, args.b)
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn