/ Dificuldades de argparse do Python - python-3.x, argumentos de linha de comando

Dificuldades em argos do Python - python-3.x, argumentos da linha de comando

Eu estou tentando criar um analisador de argumento de linha de comando para o meu programa usando o módulo interno do Python argparse. Eu quero que o usuário seja capaz de executar o meuprograma normalmente, ou para executar uma demonstração. Para executar uma demonstração, é necessário um número de demonstração, que seria um argumento de linha de comando. Então, basicamente, os argumentos da linha de comando podem estar em um desses formatos.

  • python3 blah.py normal
  • python3 blah.py demo <demo#>

Como faço para permitir que o usuário use uma das opções, mas não as duas ao mesmo tempo? Além disso, como faço o número de demonstração necessário ao usar a opção de demonstração, mas não ao usar a opção normal?

Desde já, obrigado.

Respostas:

1 para resposta № 1

você pode usar o grupo mutuamente exclusivo (eu mudei argumentos para -demo número e -normal):

import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("-demo", action="store",
dest="demonum",
help="demo execution")
group.add_argument("-normal", action="store_true",
help="normal execution")
parsed = parser.parse_args()
print(parsed.demonum)
print(parsed.normal)