/ / Python argparse difficulties - python-3.x, argumenty wiersza polecenia

Python argparse problems - python-3.x, argumenty wiersza polecenia

Próbuję utworzyć parser argumentów wiersza poleceń dla mojego programu przy użyciu wbudowanego modułu Python argparse. Chcę, aby użytkownik mógł albo uruchomić mójprogram normalnie lub uruchomić demo. Aby uruchomić demo, należy użyć numeru demonstracyjnego, który byłby argumentem wiersza poleceń. Zasadniczo argumenty wiersza poleceń mogą znajdować się w jednym z tych formatów.

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

Jak mogę zezwolić użytkownikowi na użycie jednej z opcji, ale nie obu jednocześnie? Ponadto, w jaki sposób zrobić numer demo wymagane podczas korzystania z opcji demo, ale nie podczas korzystania z normalnej opcji?

Z góry dziękuję.

Odpowiedzi:

1 dla odpowiedzi № 1

możesz używać wzajemnie wykluczających się grup (zmieniłem argumenty na -demo number i -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)