argparse を使用して、作業中のプログラムのコマンド ライン引数を解析しようとしています。基本的に、オプションの引数内に広がる複数の位置引数をサポートする必要がありますが、この状況では argparse を機能させることができません。実際のプログラムでは、カスタム アクションを使用しています (位置引数が見つかるたびに名前空間のスナップショットを保存する必要があります) が、私が抱えている問題はappend
アクションで再現できます。
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-a', action='store_true')
>>> parser.add_argument('-b', action='store_true')
>>> parser.add_argument('input', action='append')
>>> parser.parse_args(['fileone', '-a', 'filetwo', '-b', 'filethree'])
usage: ipython [-h] [-a] [-b] input
ipython: error: unrecognized arguments: filetwo filethree
これが名前空間になるようにしたいのですが、これ(a=True, b=True, input=['fileone', 'filetwo', 'filethree'])
を行う方法がわかりません-実際に可能であれば。ドキュメントや Google には、これが可能である場合、何らかの方法でそれが可能であると書かれているものは何も表示されませんが、可能性は十分にあります (可能性は高いですか?) 私は何かを見落としています。誰か提案はありますか?