argparseでハイフン入りオプションを使う
前略、pythonのargparseは非常に便利です。
add_argument()
の第一引数 name に対して--foo
のような文字列を与えてやると、parse_args()
で得られるオブジェクトに対して.foo
でアクセスし値を取ってこれる、という便利な実装になっています。
具体的にはこういう感じになります。
if __name__ == '__main__': parser = argparse.ArgumentParser(description=u'サンプル') parser.add_argument("--foo") args = parser.parse_args() if args.foo': print 'これで取れる'
ただ、一つだけよくわからないことがあります。 これ、nameにハイフンが含まれた時どうすんの?
というわけで実験しました。
if __name__ == '__main__': parser = argparse.ArgumentParser(description=u'サンプル') parser.add_argument("--hoge-fuga") args = parser.parse_args() if args.hoge_fuga': print 'これで取れる'
上記のように、--hoge-fuga
というオプションは.hoge_fuga
としてアクセスが可能です。
ハイフンは自動でアンダースコアに置換されるようです。