pythonのargparseで引数の数の可変
現在、pythonのプログラムで、コマンドにオプションを付けて、それによって戻ってくる結果を表示するようにしたいと思い作成しています。
それで、次のようなプログラムを作ることができました。
$ python pythonProg.py -s 5 5 5
5
5
5
5+5+5 == 15
(githubでの現在のソースコード内容)
https://github.com/KenjiMaehara/raspberryPiTCPClient/blob/testBranch20170201_02/testSpi161101/pythonProg.py
現在、-sのオプションと3つの引数x,y,zを渡すと、x,y,zの総和を表示するようにしているのですが、
引数の数を2つにした場合、次のようなエラーが出てきます。
$ python pythonProg.py -s 5 5
usage: pythonProg.py [-h] [-v | -q | -s] x y z
pythonProg.py: error: too few arguments
”argumentsが少ない”というエラーなのでしょうが、引数を3つ以外でも総和を計算できるようにすることはできますでしょうか?
現在のソースコード内容な下記のような感じです。
(pythonProg.pyのファイル内容)
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
group.add_argument("-s", "--sum", action="store_true")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
parser.add_argument("z", type=int, help="the exponent")
args = parser.parse_args()
answer = args.x+args.y
answer02 = args.x+args.y+args.z
(中略)
どうぞ、宜しくお願い致します。
お礼
ありがとうございます