Ich versuche, einen Befehlszeilenargument-Parser für mein Programm mit dem integrierten Python-Modul zu erstellen argparse
. Ich möchte, dass der Benutzer meine ausführen kannProgramm normal ausführen oder eine Demo ausführen. Zum Ausführen einer Demo ist eine Demo-Nummer erforderlich, die ein Befehlszeilenargument wäre. Die Befehlszeilenargumente dürfen also grundsätzlich in einem dieser Formate vorliegen.
python3 blah.py normal
python3 blah.py demo <demo#>
Wie erlaube ich dem Benutzer, eine der beiden Optionen zu verwenden, jedoch nicht beide gleichzeitig? Wie erstelle ich die erforderliche Demo-Nummer, wenn Sie die Demo-Option verwenden, nicht aber die normale Option?
Danke im Voraus.
Antworten:
1 für die Antwort № 1Sie können sich gegenseitig ausschließende Gruppen verwenden (ich habe die Argumente in -demo number und -normal geändert):
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)