Python参数解析optparse

# *-* coding: UTF-8 *-*

import sys
from optparse import OptionParser

def option_parser():
    parser = OptionParser("%prog [options] arg",version="%prog 1.0")
   	
   	# store_true|store_false 表示 -v|-q 后面没有跟参数,指定-v,则verbose=True;指定-q,verbose=False
	parser.add_option("-v", action="store_true", dest="verbose")  
	parser.add_option("-q", action="store_false", dest="verbose") 

	# default 指定变量默认值,metavar
    parser.add_option("-D", "--directory", dest="file_path",metavar='FILE_PATH',
                        help="file directory .",default="/home/firefoxbug"),
                
    # action=append,可以指定多项参数+值     
    parser.add_option("-H", "--host",dest="mysql_host",metavar='MYSQL_HOST',
   						action="append", help="mysql ip(must)")
    
    # type 指定参数类型
    parser.add_option("-P", "--port",dest="mysql_port", type=int, help='mysql port .(default:8080)',default=80)

    (options, args) = parser.parse_args()
    print parser.print_help()
    if len(sys.argv) == 1:
            parser.error("incorrect number of arguments")
    return (parser,options, args)

action参数说明

action:
	store: 默认的设置,表示保存参数,比如 -d abc,就把 abc 保存到options变量里
	store_true|store_false: 可以不指定参数值,比如 -v,后面可以不跟值,store_true/store_false分别代表bool值
	append: 追加形式保存参数,比如 -d abc -d edf,得到的结果就是['abc', 'edf']

optparse相比getopt更加强悍,会自动生成help。

$ python parse_args.py 

Usage: parse_args.py [options] arg

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v
  -q
  -D FILE_PATH, --directory=FILE_PATH
                        file directory .
  -H MYSQL_HOST, --host=MYSQL_HOST
                        mysql ip(must)
  -P MYSQL_PORT, --port=MYSQL_PORT
                        mysql port .(default:8080)
None
Usage: parse_args.py [options] arg

在parser.add_option的dest变量就是保存了参数后面的变量,可以通过options.file_path来访问。

标签:none