Pular para o conteúdo principal

Análise de argumentos em Python

Neste tutorial, aprenda a analisar um ou mais argumentos no terminal usando os módulos getopt, sys e argparse.
Atualizado 17 de set. de 2026  · 10 min lido

Explorar com IA

ChatGPTClaudePerplexity

Se você está planejando um projeto de ciência de dados ou de machine learning, não é raro começar o desenvolvimento em um Jupyter Notebook. Ele traz interatividade, permite executar módulos rapidamente e muito mais. Há muitos motivos para escolher o Jupyter Notebook como sua ferramenta principal, especialmente para ciência de dados e machine learning. No entanto, este tutorial não vai se aprofundar nesse aspecto.

Considere que você precisa executar um script Python como um job em lote para ingestão de dados no seu projeto de ciência de dados. Ou que precisa rodar um script Python para fazer o deploy de um modelo de machine learning em um servidor remoto. Em casos assim, apenas executar python your_script.py pode não ser suficiente. Talvez você precise passar mais opções ou argumentos junto com python your_script.py. Você provavelmente já está familiarizado com o uso de argumentos extras ao rodar comandos (como ps, ls etc.) em um terminal Linux.

Neste tutorial, você vai aprender a analisar argumentos adicionais e opções da linha de comando que são passados junto com um script Python. Aqui vai um resumo do que veremos hoje:

  • Uma introdução básica à análise de argumentos
  • Análise de argumentos em Python
    • Usando sys.argv
    • Usando getopt
    • Usando argparse

Observação: este tutorial pressupõe familiaridade básica com Python.

O que é análise de argumentos?

Se você usa Linux, aposto que isso já é familiar. Para obter um resumo dos arquivos e pastas presentes em um diretório, o comando ls é frequentemente utilizado. Uma saída típica do comando ls é assim:

command

No entanto, você pode fornecer várias opções ao comando ls, como -l, por exemplo. Veja como fica a saída:

output

Ao passar a opção -l, você obteve mais informações. Agora, há uma pequena diferença entre uma opção e um argumento nesse contexto. Para remover um arquivo ou pasta do diretório atual, usa-se o comando rm. Suponha que você tenha um arquivo de texto chamado demo.txt e executou rm demo.txt para removê-lo. Nesse caso, demo.txt é o argumento aplicado ao comando rm. Se você não passar nenhum argumento para o rm, verá um erro como este:

error

Então, qual é a diferença entre uma opção e um argumento? Ela agora está bem clara. Opções são opcionais, enquanto argumentos (geralmente) são necessários. Não é essencial passar nada para o comando ls para que ele produza alguma saída.

Quando você digita ls -l ou rm demo.txt, o sistema operacional faz a análise desse comando de uma forma específica por baixo dos panos. Esse mecanismo é definido pelos desenvolvedores do sistema operacional e é conhecido como parsing (análise).

Se quiser conhecer melhor os comandos Linux e as diferentes opções e argumentos que eles suportam, a leitura do livro Unix Concepts and Applications é altamente recomendada.

Essa foi uma introdução básica à análise de argumentos. Quase todas as linguagens de programação oferecem suporte a isso. Python não é exceção. Há três formas bem comuns de fazer análise de argumentos em Python:

  • sys.argv
  • getopt
  • argparse

Agora vamos ver cada uma dessas opções e como usá-las para analisar argumentos (e opções). Vamos em ordem cronológica.

Análise de argumentos usando sys.argv

Vamos começar simples. Neste primeiro exemplo, você vai criar um arquivo Python chamado demo1.py. Seu programa vai aceitar um número arbitrário de argumentos passados pela linha de comando (ou terminal) durante a execução. O programa imprimirá os argumentos recebidos e o total de argumentos.

Por exemplo, se você executar python demo1.py abc 123, o programa exibirá:

Number of arguments: 3
Argument(s) passed: ['demo1.py', 'abc', '123']

Repare que o primeiro argumento é sempre o nome do arquivo Python. Mas o código pode ser ajustado para não incluí-lo.

Agora vamos ao código:

import sys

print('Number of arguments: {}'.format(len(sys.argv)))
print('Argument(s) passed: {}'.format(str(sys.argv)))

Primeiro, você importou o módulo padrão do Python sys. Em seguida, utilizou o submódulo argv, que retorna a lista de argumentos passados a um script Python, em que argv[0] contém o nome do script. Se você executar sys.argv em uma célula de código como a seguir, verá a lista de arquivos de configuração responsáveis por fazer o kernel do IPython funcionar corretamente. É melhor não mexer neles.

sys.argv
['/home/nbuser/anaconda3_501/lib/python3.6/site-packages/ipykernel/__main__.py',
 '-f',
 '/home/nbuser/.local/share/jupyter/runtime/kernel-dabba4f7-e3e0-4c39-99d2-261ba835c53f.json']

Agora vamos ver como usar o módulo getopt para analisar argumentos (e opções).

Análise de argumentos usando getopt

Em comparação com o sys.argv, o módulo getopt oferece muito mais flexibilidade. Vamos primeiro pensar em um cenário de exemplo e escrever o código de acordo.

Digamos que você lançou um script Python ainda sem documentação. Mesmo assim, você quer fornecer um retorno útil quando o usuário executá-lo de forma incorreta. Seu script faz a tarefa simples de somar dois números e exibir o resultado. A única exigência é que o usuário passe as entradas como argumentos na linha de comando junto com o script Python.

Falando de forma mais prática, o script deveria ser executado assim:

python add_numbers.py -a 3 -b 8

A saída deve ser 11. Aqui, -a e -b são as opções, e 3 e 8 são os argumentos fornecidos ao script. As opções não apenas melhoram a legibilidade, como também ajudam a definir o fluxo de avaliação (pense se, em vez de somar, você estivesse dividindo). Vamos ao código:

import getopt
import sys

# Obtenha os argumentos da linha de comando, exceto o nome do arquivo
argv = sys.argv[1:]
sum = 0

try:
    # Defina os parâmetros do getopt
    opts, args = getopt.getopt(argv, 'a:b:', ['foperand', 'soperand'])
    # Verifique se o tamanho de options é 2 (pode ser aprimorado)
    if len(opts) == 0 and len(opts) > 2:
      print ('usage: add.py -a <first_operand> -b <second_operand>')
    else:
      # Percorra as opções e obtenha os respectivos valores
      for opt, arg in opts:
         sum += int(arg)
      print('Sum is {}'.format(sum))

except getopt.GetoptError:
    # Imprima algo útil
    print ('usage: add.py -a <first_operand> -b <second_operand>')
    sys.exit(2)

A ideia é primeiro obter todos os argumentos com sys.argv e então processá-los. Vamos à linha mais importante do código: opts, args = getopt.getopt(argv, 'a:b:', ['foperand', 'soperand'])

A assinatura do método getopt() é:

getopt.getopt(args, shortopts, longopts=[])

  • args é a lista de argumentos obtida da linha de comando.
  • shortopts é onde você especifica as letras das opções. Se você fornece a:, significa que seu script deve receber a opção a seguida de um valor como argumento. Tecnicamente, você pode usar quantas opções quiser aqui. Ao passar essas opções na linha de comando, elas devem vir precedidas de '-'.
  • longopts é onde você pode especificar as versões estendidas de shortopts. Elas devem vir precedidas de '--'.

Você definiu shortopts como a:b:, o que indica que seu script aceitará duas opções em forma de letra: 'a' e 'b'. Ao usar ':' você informa explicitamente que essas opções serão seguidas de argumentos.

Você definiu longopts como ['foperand', 'soperand'], dizendo ao código para aceitar f_operand e s_operand no lugar de a e b como opções. Porém, elas devem sempre ser precedidas de --.

O módulo getopt também fornece a exceção GetoptError para você exibir mensagens úteis e orientar o usuário sobre como usar seu script. Por isso, você encapsulou a parte funcional em um bloco try e definiu o bloco except de forma apropriada.

Veja como executar o script Python:

python script

Observação: o script acima não foi configurado para lidar com longopts. Isso é algo que você pode testar como exercício.

Agora vamos ver como usar o argparse para análise de argumentos.

Análise de argumentos usando argparse

Com base nas duas opções anteriores, dá para perceber que elas não são muito legíveis. Quando você vir o argparse em ação, vai concordar que as duas opções anteriores também ficam devendo em flexibilidade. Para entender o uso de argparse, vamos começar com um trecho de código que implementa o cenário visto na seção anterior.

import argparse

# Construa o parser de argumentos
ap = argparse.ArgumentParser()

# Adicione os argumentos ao parser
ap.add_argument("-a", "--foperand", required=True,
   help="first operand")
ap.add_argument("-b", "--soperand", required=True,
   help="second operand")
args = vars(ap.parse_args())

# Calcule a soma
print("Sum is {}".format(int(args['foperand']) + int(args['soperand'])))

Primeiro, argparse, assim como os outros módulos discutidos, faz parte da instalação padrão do Python. Você começa instanciando o objeto argparse. E o restante fica muito mais simples de escrever. Veja, por exemplo, a linha:

ap.add_argument("-a", "--foperand", required=True, help="first operand")

Aqui você adicionou o argumento que espera receber junto com a execução do script Python. Você forneceu a versão curta e a estendida do argumento. Ao especificar required=True, você exige explicitamente que o usuário forneça esse argumento. Por fim, incluiu uma descrição do argumento, que será mostrada ao usuário caso ele não execute o script corretamente.

A definição do segundo argumento segue a mesma lógica. Você acessa os argumentos informados especificando seus respectivos índices.

O trecho acima mostra como é fácil e flexível definir a análise de argumentos de linha de comando com argparse. Veja como você pode testar o script:

python script

Perceba como tudo ficou mais simples com argparse.

E agora?

Obrigado por acompanhar o tutorial até o fim. Agora você está equipado com módulos nativos do Python capazes de analisar argumentos fornecidos pela linha de comando junto com seu script. Como exercício, personalize seus projetos de machine learning e ciência de dados para facilitar a análise de argumentos e transformá-los em utilitários de script úteis. E não apenas em ML ou ciência de dados — use onde fizer sentido. Por hoje é isso. Se você quer aprimorar suas habilidades em Python, vale conhecer o curso Python Data Science Toolbox (Part 1) da DataCamp.

Tópicos
Python

Cursos de Python

Curso

Introdução ao Python

4 h
7M
Domine os fundamentos da análise de dados com Python em quatro horas e explore pacotes populares.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

Tutorial

Funções em Python: como chamar e escrever funções

Descubra como escrever funções em Python reutilizáveis e eficientes. Domine parâmetros, instruções de retorno e temas avançados como funções lambda. Organize melhor seu código com main() e outras boas práticas.
Karlijn Willems's photo

Karlijn Willems

14 min

Tutorial

Instruções IF, ELIF e ELSE em Python

Neste tutorial, você vai aprender só sobre as instruções if else do Python.
Sejal Jaiswal's photo

Sejal Jaiswal

9 min

Tutorial

Tutorial sobre concatenação de strings em Python

Aprenda vários métodos para concatenar strings em Python, com exemplos para ilustrar cada técnica.
DataCamp Team's photo

DataCamp Team

5 min

Tutorial

Operadores em Python

Este tutorial aborda os diferentes tipos de operadores em Python, sobrecarga de operadores, precedência e associatividade.
Théo Vanderheyden's photo

Théo Vanderheyden

9 min

Tutorial

Tutorial de docstrings em Python

Saiba mais sobre os Docstrings do Python. Encontre diferentes exemplos e tipos de formatos de docstrings para Sphinx, Numpy e Pydoc.
Aditya Sharma's photo

Aditya Sharma

15 min

Ver MaisVer Mais