Argumentos de linha de comando em Python

Manav Narula 30 janeiro 2023
  1. Use o módulo sys para processar argumentos de linha de comando em Python
  2. Use o módulo getopt para processar argumentos de linha de comando em Python
  3. Use o módulo argparse para processar argumentos de linha de comando em Python
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 Narula avatar Manav Narula avatar

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