Python中optionParser模块的使用方法实例教程

2019-10-05 21:17:31于海丽

当 optparse 解析到 -h 或者 –help 命令行参数时,会调用 parser.print_help() 打印程序的帮助信息:

usage: <yourscript> [options] arg1 arg2 
 
options: 
 -h, --help  show this help message and exit 
 -v, --verbose  make lots of noise [default] 
 -q, --quiet  be vewwy quiet (I'm hunting wabbits) 
 -f FILE, --filename=FILE 
   write output to FILE 
 -m MODE, --mode=MODE interaction mode: novice, intermediate, or 
   expert [default: intermediate] 

注意: 打印出帮助信息后,optparse 将会退出,不再解析其它的命令行参数。
以上面的例子来一步步解释如何生成帮助信息:

① 自定义的程序使用方法信息(usage message):
 
usage = "usage: %prog [options] arg1 arg2" 
这行信息会优先打印在程序的选项信息前。当中的 %prog,optparse 会以当前程序名的字符串来替代:如 os.path.basename.(sys.argv[0])。
如果用户没有提供自定义的使用方法信息,optparse 会默认使用: “usage: %prog [options]”。
② 用户在定义命令行参数的帮助信息时,不用担心换行带来的问题,optparse 会处理好这一切。
③ 设置 add_option 方法中的 metavar 参数,有助于提醒用户,该命令行参数所期待的参数,如 metavar=“mode”:

-m MODE, --mode=MODE 

注意: metavar 参数中的字符串会自动变为大写。
④ 在 help 参数的帮助信息里使用 %default 可以插入该命令行参数的默认值。

如果程序有很多的命令行参数,你可能想为他们进行分组,这时可以使用 OptonGroup:

group = OptionGroup(parser, ``Dangerous Options'', 
   ``Caution: use these options at your own risk. `` 
   ``It is believed that some of them bite.'') 
group.add_option(``-g'', action=''store_true'', help=''Group option.'') 
parser.add_option_group(group) 

下面是将会打印出来的帮助信息:

usage: [options] arg1 arg2 
 
options: 
 -h, --help  show this help message and exit 
 -v, --verbose make lots of noise [default] 
 -q, --quiet  be vewwy quiet (I'm hunting wabbits) 
 -fFILE, --file=FILE write output to FILE 
 -mMODE, --mode=MODE interaction mode: one of 'novice', 'intermediate' 
   [default], 'expert' 
 
 Dangerous Options: 
 Caution: use of these options is at your own risk. It is believed that 
 some of them bite. 
 -g   Group option. 

显示程序版本

象 usage message 一样,你可以在创建 OptionParser 对象时,指定其 version 参数,用于显示当前程序的版本信息:

parser = OptionParser(usage="%prog [-f] [-q]", version="%prog 1.0") 

 
这样,optparse 就会自动解释 –version 命令行参数:

$ /usr/bin/foo --version 
foo 1.0