Ich versuche parser = argparse.ArgumentParser
für ein lil Programm zu verwenden, das ich schreibe.Verwenden von argparse, um nur eine Gruppe von erforderlichen Argumenten zu akzeptieren
Das Programm akzeptiert als Eingang EITHER
(
ein Pfad zu einer Datei txt )
OR
(
OPT1 &&
opt2 &&
OPT3 )
.
Wenn der Benutzer eine txt-Datei als Eingabe verwenden möchte, kann er weder opt
noch opt
angeben - er muss alle 3 bereitstellen und keine a path to a txt file
bereitstellen.
Ich versuchte mit add_mutually_exclusive_group
aber nicht sicher, wie, weil die zweite Gruppe von Argumenten eine Gruppe selbst ist.
Das ist, was ich bisher versucht:
import argparse
parser = argparse.ArgumentParser(description='this is the description',)
root_group = parser.add_mutually_exclusive_group()
group_list = root_group.add_mutually_exclusive_group()
group_list.add_argument('-path', help='path to the txt file')
group_list = root_group.add_mutually_exclusive_group()
group_list.add_argument('-opt1', help='opt1')
group_list.add_argument('-opt2', help='opt2')
group_list.add_argument('-opt3', help='opt3')
args = parser.parse_args()
-
python tests.py -path txt -opt1 asdasd
usage: tests.py [-h] [[-path PATH] [-opt1 OPT1 | -opt2 OPT2 | -opt3 OPT3]
tests.py: error: argument -opt1: not allowed with argument -path
path
mit einem opt
nicht erlaubt - das ist genau das, was ich will.
Aber ich möchte, dass, wenn der Benutzer sogar 1 opt
er wird sie alle zur Verfügung stellen müssen.
Ich möchte auch, dass mindestens 1 Gruppe zufrieden sein muss.
Bitte zeigen Sie, was Sie versucht haben, und erklären Sie, wie es nicht angemessen war. –
hat den ersten Post bearbeitet. Danke –
Ihr Titel ist irreführend, dann; Sie wollen alles oder nichts von einer Reihe von Optionen. –