コマンドラインで引数を指定して実行してもらうスクリプトがあります。
コマンドラインの解析はargparseで行っており以下のようなコマンドです。(以下のパターン以外はエラー)
(スクリプト) (位置引数) (位置引数) (位置引数)
ここにオプションを追加したのですが、うまくいきません。
※argparseで位置引数があっても-hを実行するとヘルプが表示されるので、そのイメージです。
許容可能なパターンは以下です。
(スクリプト) (位置引数) (位置引数) (位置引数)
(スクリプト) (位置引数) オプション引数A
(スクリプト) オプション引数B
どのようにすればよいでしょうか?```python
--追記--
以下のパターンのみ許容したいです
sample.py aaa bbb ccc
sample.py aaa --optA
sample.py aaa bbb --optB
上記のコードでsample.py aaa --optA を実行すると
sample.py: error: the following arguments are required: bbb, ccc
と、bbb, cccは必須パラメータです。と、怒られます
コード
import argparse parser = argparse.ArgumentParser() parser.add_argument('aaa') # 必須の引数 parser.add_argument('bbb') # optAがなければ必須の引数 parser.add_argument('ccc') # optBがなければ必須の引数 parser.add_argument('--optA', action='store_true') parser.add_argument('--optB', action='store_true') args = parser.parse_args() print('parse SUCCESS')
回答1件
あなたの回答
tips
プレビュー