argparse
Python 3.0/2.7以降で標準モジュールになったargparseですが、結構いいかなと思ったけど*1日本語文献が不思議なことにpython-doc以外に見当たらないのでメモ書き。
なお、2.6系でも使えて、pip install argparse でインストール。
使い方
argparser オブジェクトにオプションを追加して、解釈するというパターンです。便利なのは、-h --help を特に用意しなくてもいいという点。
引き数を取らない --foo オプション、いくつかの引数を取るようなコマンドを作ってみる。
こんな感じ
$ ./argparse_test.py test aa bb --foo foo is up. files: ['test', 'aa', 'bb'] $ ./argparse_test.py -h usage: argparse_test.py [-h] [-f] [files... [files... ...]] positional arguments: files... test optional arguments: -h, --help show this help message and exit -f, --foo foo help
python script
#!/usr/bin/env python # -*- coding: utf-8 -*- import argparse import sys parse = argparse.ArgumentParser() parse.add_argument('-f', '--foo', action='store_false', help='foo help') parse.add_argument('files', metavar="files...", help="test", nargs="*") ns = parse.parse_args(sys.argv[1:]) if ns.foo: print "foo is down." else: print "foo is up." print "files: ", ns.files
*1:コンソールにて、arg_parse関数呼び出したら死亡するとか堪忍…