私は書き込みするlilプログラムにparser = argparse.ArgumentParser
を使用しようとしています。argparseを使用して必要な引数のグループを1つだけ受け入れます。
プログラムは、入力EITHER
(
txtファイル)
OR
(
OPT1 &&
OPT2 &&
OPT3 )
へのパスとして受け入れます。
意味txtファイルを入力として使用したい場合、opt
と、opt
を入力した場合は、すべて3を指定して、a path to a txt file
を入力する必要がありません。
私はadd_mutually_exclusive_group
を使用しようとしましたが、第2の引数グループはグループそのものであるため、どのようにしたらよいかわかりません。
これは私がこれまで試したものです:
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
はopt
のいずれかで許可されていません - それは私が欲しいまさにです。
しかし、私もユーザーが1を提供した場合は、opt
彼はそれらのすべてを提供する必要があります。
少なくとも1つのグループに満足してもらいたい。
あなたが試したことを示して、それがどのように適切でないか説明してください。 –
最初の投稿を編集しました。ありがとう –
あなたのタイトルは誤解を招く恐れがあります。あなたはオプションのセットのすべてまたは何も必要としません。 –