で2つのoptionals私は、次の引数でプログラムを持っている:argparseパイソン1変数
- ファイル
- ディレクトリ
- 名1
- Name2は
ファイルは、いつものように渡す必要があります引数を指定すると、ディレクトリが存在していてもいなくても構いません。また、name1とname2は、それらのいずれも、または両方を同時に渡さなければなりません。
これは私がこの時点で持っているものです。
parser = argparse.ArgumentParser()
parser.add_argument("file", help="The file")
parser.add_argument("resources_dir", default='.', nargs='?', help="The directory of media files")
parser.add_argument("name", nargs=2, help="names")
ヘルプが表示されます。
使用:wacv [-h]ファイル[resources_dir]名前名
をと私はそれが欲しい:
使用法:wacvファイル[res_dir] [name1 name2]
しかし、私は前に言ったように '名前'の議論をしたい。どうすればこれを達成できますか?
'names'が単なる文字列であると仮定すれば、' name1'がオプションの 'res_dir'ではないとどのように判断するでしょうか?(' res_dir'が与えられていないと仮定します)? '0または2'のセマンティクスを 'argparse'で直接実行する方法はありませんが、あなたは' * 'を受け入れて独自のエラーチェックを行うことができます。 – AChampion
最後に私が決めたのは、名前に*を受け入れ、0か2かどうかを自分で確認した後ですが、もっと良い方法があるかどうかを知りたいのです。 – xBlackout