/ / Python argparse schwierigkeiten - python-3.x, Befehlszeilenargumente

Python-Argumentationsprobleme - Python-3.x, Befehlszeilenargumente

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 № 1

Sie 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)