Learning Center
Programação Python

Opções de linha de comando e análise de argumentos com argparse em Python

25 nov. 2025
Hostman Team
Hostman Team

Interfaces de linha de comando (CLIs) são uma das maneiras mais rápidas e eficazes de interagir com softwares. Elas permitem que você execute comandos diretamente, resultando em processamento mais rápido e recursos avançados. Desenvolvedores frequentemente criam CLIs em Python para diversas aplicações, utilitários e scripts de automação — permitindo processar dinamicamente a entrada do usuário. É aqui que entra o módulo argparse do Python.

O módulo argparse simplifica o processamento de argumentos da linha de comando, permitindo que desenvolvedores criem ferramentas interativas e fáceis de usar. Como parte da biblioteca padrão, ele permite definir, processar e validar entradas sem a necessidade de uma lógica complexa.

Neste artigo, abordaremos os conceitos principais, exemplos úteis e recursos avançados do módulo argparse, para que você possa começar a construir ferramentas de linha de comando robustas imediatamente.

Como usar argparse em Python para interfaces de linha de comando
Copiar link

Passo 1: Importar o módulo
Copiar link

Importe o módulo no seu script Python:

import argparse

Isso habilita o parsing de argumentos .py a partir da linha de comando.

Passo 2: Criar um objeto ArgumentParser
Copiar link

A classe ArgumentParser é a classe principal da API do módulo argparse. Para usá-la, comece criando uma instância:

parser = argparse.ArgumentParser(description="A Hostman tutorial on Python argparse.")

Aqui:

  • description descreve a função do programa e será exibida quando alguém executar --help.

Passo 3: Adicionar entradas e opções
Copiar link

Defina os parâmetros que seu programa aceitará usando add_argument():

parser.add_argument('filename', type=str, help="Name of the file to process")

parser.add_argument('--verbose', action='store_true', help="Enable verbose mode")

Explicação:

  • filename é obrigatório.

  • --verbose é opcional e ativa o modo verboso.

Passo 4: Fazer o parsing da entrada do usuário
Copiar link

Use parse_args() para processar os argumentos fornecidos:

args = parser.parse_args()

Isso armazena os valores como atributos do objeto args.

Passo 5: Acessar os dados processados
Copiar link

Exemplo:

print(f"File to process: {args.filename}")

if args.verbose:

    print("Verbose mode enabled")

else:

    print("Verbose mode disabled")

Exemplos de uso do CLI
Copiar link

Processamento de arquivo sem modo verboso
Copiar link

python3 file.py example.txt

Processamento de arquivo com modo verboso
Copiar link

python3 file.py example.txt --verbose

Exibir ajuda
Copiar link

python3 file.py --help

Exemplos comuns do uso de argparse
Copiar link

Exemplo 1: Adicionar valores padrão
Copiar link

Em alguns casos, argumentos opcionais precisam de valores pré-definidos. Neste exemplo, --timeout recebe um valor padrão de 30 segundos:

import argparse

parser = argparse.ArgumentParser(description="Demonstrating default argument values.")

parser.add_argument('--timeout', type=int, default=30, help="Timeout in seconds (default: 30)")

args = parser.parse_args()

print(f"Timeout value: {args.timeout} seconds")

Explicação

  • Importação do módulo

  • Criação do ArgumentParser

  • Adição do argumento --timeout com valor padrão

  • Parsing com parse_args()

Caso 1: valor padrão usado

python file.py

Caso 2: valor personalizado

python file.py --timeout 60

Exemplo 2: Utilizando choices
Copiar link

O parâmetro choices permite restringir um argumento a um conjunto de valores válidos:

parser.add_argument('--mode', choices=['basic', 'advanced'], help="Choose the mode of operation")

Caso 1: valor válido

python3 file.py --mode basic

Caso 2: sem entrada

python3 file.py

Caso 3: valor inválido

python3 file.py --mode intermediate

Exemplo 3: Manipulando múltiplos valores
Copiar link

Use nargs='+' para permitir múltiplos valores em um único argumento:

parser.add_argument('--numbers', nargs='+', type=int, help="List of numbers to process")

Caso 1: múltiplos números

python3 file.py --numbers 10 20 30

Caso 2: um número

python3 file.py --numbers 5

Caso 3: sem entrada

python3 file.py

Caso 4: entrada inválida

python3 file.py --numbers 10 abc 20

Exemplo 4: Argumentos opcionais obrigatórios
Copiar link

Embora argumentos com -- sejam opcionais por padrão, você pode torná-los obrigatórios com required=True:

parser.add_argument('--config', required=True, help="Path to the configuration file")

Caso 1: entrada válida

python3 file.py --config settings.json

Caso 2: argumento obrigatório ausente

python3 file.py

Recursos avançados
Copiar link

Flags booleanas
Copiar link

parser.add_argument('--debug', action='store_true', help="Enable debugging mode")

Agrupando argumentos relacionados
Copiar link

group = parser.add_argument_group('File Operations')

group.add_argument('--input', type=str, help="Input file")

group.add_argument('--output', type=str, help="Output file")

Argumentos mutuamente exclusivos
Copiar link

group = parser.add_mutually_exclusive_group()

group.add_argument('--json', action='store_true', help="Output in JSON format")

group.add_argument('--xml', action='store_true', help="Output in XML format")

Conclusão
Copiar link

O módulo argparse facilita a criação de CLIs robustos para manipular argumentos da linha de comando em Python. Desde opções simples até recursos avançados como choices e nargs, desenvolvedores podem criar ferramentas práticas, confiáveis e amigáveis ao usuário. Nomear argumentos de forma clara e escrever boas descrições torna seus scripts mais compreensíveis e fáceis de manter.