参考资料 http://docs.python.org/dev/library/argparse.html
子命令 sub-commands
如svn命令 svn checkout, svn update, svn commit
主命令svn,子命令checkout、update和commit
argparse可通过add_subparsers 以及add_parser来达到效果。
步骤1.在顶层的解析器下,先定义一个subparsers,它是一个子命令解析的对象,用来产生子命令解析器 (注意,每个解析器,只能有一个subparsers)
步骤2.在subparsers下,分别定义所需要的子解析器(一个subparsers下可以有多个parser),子解析器间是互斥的关系,一个时刻只能匹配一个。
实例1
import argparse
####example 1############
#create top-level parser
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('--foo', action='store_true', help='foo help')
subparsers = parser.add_subparsers(help='sub-command help')
#create the parser for the 'a' command
parser_a = subparsers.add_parser('a', help='a help')
parser_a.add_argument('bar', type=int, help='bar help')
#create the parser for the 'b' command
parser_b = subparsers.add_parser('b', help='b help')
parser_b.add_argument('--baz', choices='xyz', help='baz help')
#parse some argument lists
parser.parse_args(['a','12'])
#Namespace(bar=12, foo=False)
parser.parse_args(['--foo', 'b','--baz','z'])
#Namespace(baz&#