pythonのargparseが難しいくて戸惑うので基本のもの
引数を取らないオプション
1 2 3 4 5 6 7 8 9 10 11 |
parser = argparse.ArgumentParser(prog='MyPythonTest', description='Test ArgumentParser') parser.add_argument('-f', action='store_true', help='do it with force') args = parser.parse_args() if args.f: print('f is set') else: print('f is not set') |
引数を1個とるオプション(デフォルト)
1 2 3 4 5 6 7 |
parser = argparse.ArgumentParser(prog='MyPythonTest', description='Test ArgumentParser') parser.add_argument('-i', help="The input") args = parser.parse_args() print('i is ',args.i) ## args.i is string |
引数を1個とるオプション(個数指定)
1 2 3 4 5 6 7 8 9 10 11 |
parser = argparse.ArgumentParser(prog='MyPythonTest', description='Test ArgumentParser') parser.add_argument('-i', nargs=1, help="The input") args = parser.parse_args() if args.i: print('i is ',args.i) ## args.i is list else: print('No i') |
0個か1個だけとるメイン(オプションのない)の引数
1 2 3 4 5 6 7 8 9 10 11 12 |
parser = argparse.ArgumentParser(prog='MyPythonTest', description='Test ArgumentParser') parser.add_argument('infile', nargs='?', help="The input") args = parser.parse_args() print(args) if args.infile: print('infile is',args.infile) ## args.infile is string else: print('No infile') |
1個からN個とるメインの引数
1 2 3 4 5 6 7 8 9 10 11 12 |
parser = argparse.ArgumentParser(prog='MyPythonTest', description='Test ArgumentParser') parser.add_argument('infile', nargs='+', help="The input") args = parser.parse_args() print(args) if args.infile: print('infile is',args.infile) ## args.infile is list else: print('No infile') |
nargsが+
0個からN個とるメインの引数
1 2 3 4 5 6 7 8 9 10 11 12 |
parser = argparse.ArgumentParser(prog='MyPythonTest', description='Test ArgumentParser') parser.add_argument('infile', nargs='*', help="The input") args = parser.parse_args() print(args) if args.infile: print('infile is',args.infile) ## args.infile is list else: print('No infile') |
考察
ほかにもいろいろなことができるのだがやりすぎて使いにくくなってる感がある。基本を押さえと置けば理解もできるようになると思う。