Trabalhando com Argumentos Opcionais
Argumentos opcionais fornecem flexibilidade em interfaces de linha de comando. Diferente dos argumentos posicionais, os argumentos opcionais:
- São prefixados com hífens (tipicamente
- para formas abreviadas e -- para formas longas)
- Podem ser omitidos (o programa usará valores padrão se fornecidos)
- Podem ser fornecidos em qualquer ordem
- São ideais para opções de configuração que não são essenciais para a execução do programa
Vamos criar um programa que demonstra o uso de argumentos opcionais.
Criando um Programa de Saudação com Argumentos Opcionais
-
No WebIDE, crie um novo arquivo chamado greeting.py no diretório /home/labex/project.
-
Adicione o seguinte código ao arquivo:
import argparse
## Create an argument parser
parser = argparse.ArgumentParser(description="A customizable greeting program")
## Add optional arguments
parser.add_argument("-n", "--name", default="World", help="The name to greet (default: World)")
parser.add_argument("-g", "--greeting", default="Hello", help="The greeting to use (default: Hello)")
parser.add_argument("-c", "--count", type=int, default=1, help="Number of times to display the greeting (default: 1)")
## Parse the arguments
args = parser.parse_args()
## Display the greeting
for _ in range(args.count):
print(f"{args.greeting}, {args.name}!")
-
Salve o arquivo.
-
Execute o programa sem nenhum argumento:
python /home/labex/project/greeting.py
- Você deve ver a saudação padrão:
Hello, World!
- Agora tente personalizar a saudação com argumentos opcionais:
python /home/labex/project/greeting.py --name Alice --greeting Hi
- Você deve ver a saudação personalizada:
Hi, Alice!
- Você também pode usar as formas abreviadas dos argumentos:
python /home/labex/project/greeting.py -n Bob -g Hey -c 3
- Isso deve exibir a saudação três vezes:
Hey, Bob!
Hey, Bob!
Hey, Bob!
Tipos de Argumentos Opcionais
argparse suporta vários tipos de argumentos opcionais:
-
Argumentos de flag: Flags booleanas que estão presentes ou não
-
Argumentos com valores: Argumentos opcionais que recebem valores
Vamos modificar nosso programa de saudação para incluir um argumento de flag:
-
Abra greeting.py no WebIDE.
-
Adicione um argumento de flag para maiúsculas:
import argparse
## Create an argument parser
parser = argparse.ArgumentParser(description="A customizable greeting program")
## Add optional arguments
parser.add_argument("-n", "--name", default="World", help="The name to greet (default: World)")
parser.add_argument("-g", "--greeting", default="Hello", help="The greeting to use (default: Hello)")
parser.add_argument("-c", "--count", type=int, default=1, help="Number of times to display the greeting (default: 1)")
parser.add_argument("-u", "--uppercase", action="store_true", help="Display the greeting in uppercase")
## Parse the arguments
args = parser.parse_args()
## Create the greeting message
message = f"{args.greeting}, {args.name}!"
## Convert to uppercase if requested
if args.uppercase:
message = message.upper()
## Display the greeting
for _ in range(args.count):
print(message)
-
Salve o arquivo.
-
Execute o programa com a flag de maiúsculas:
python /home/labex/project/greeting.py -n Charlie -u
- Você deve ver a saudação em maiúsculas:
HELLO, CHARLIE!
O parâmetro action="store_true" significa que a flag não recebe um valor - ela está presente (True) ou ausente (False).
Argumentos opcionais tornam suas interfaces de linha de comando mais flexíveis e fáceis de usar. Eles permitem que os usuários personalizem o comportamento do seu programa sem exigir que eles forneçam todas as informações todas as vezes.
No próximo passo, veremos como combinar argumentos posicionais e opcionais em um único programa.