以前は optparse 使ってましたけど、廃止予定だそうです。で、今は argparse 使います。2.7以降はargparseが標準で入ってるそうなので、今時はもうoptparseも使えはするけどargparse一択でしょう。
from argparse import ArgumentParser if __name__ == "__main__": _parser = ArgumentParser() _parser.add_argument( '-s', '--string', type=str, dest='string', required=True, help='String Value' ) _parser.add_argument( '-n', '--number', type=int, dest='number', required=True, help='Number Value' ) _args = _parser.parse_args() print(_args.string, _args.number)
なんのオプションも指定しないで起動すると
$ python sample.py
usage: sample.py [-h] -s STRING -n NUMBER
sample.py: error: argument -s/–string is required
「-sで文字列、-nで値を指定してね。-sは必須オプションだからエラーだよ。」
ってメッセージがでます。親切です。
$ python sample.py -s S -n N
usage: sample.py [-h] -s STRING -n NUMBER
sample.py: error: argument -n/–number: invalid int value: ‘N’
-n に文字列を与えてもエラーが出ます。ちゃんと型チェックしてくれます。親切です。
$ python sample.py -s Hello -n 123
(‘Hello’, 123)
便利。