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 № 1moż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)