标准库名为optparse,在官方文档中对optparse的描述是:一个强大的,扩展性强的,易用的命令行参数解析工具。附上官方文档中的使用实例:
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
调用程序如下:
<yourscript> --file=outfile -q
optparse库中共定义了13个类,如下图所示,缩进代表的是继承关系,如BadOptionError类继承自OptParseError类。其中5个类用于处理命令行中会出现的错误。如输入不存在的命令参数,命令行参数之间存在冲突等等,3个类用于处理帮助信息的输出格式,在此不仔细说明。接下来主要介绍3个类的内容及使用方法。
exceptions.Exception(exceptions.BaseException)
OptParseError
BadOptionError
OptionError
OptionConflictError
OptionValueError
HelpFormatter
IndentedHelpFormatter
TitledHelpFormatter
Option
OptionContainer
OptionGroup
OptionParser
Values
首先从OptionParser说起,它是对命令行解析的最主要的类,想要读取解析命令行参数,首先要创建一个OptionParser类的实例:
from optparse import OptionParser
parser = OptionParser()
OptionParser类的属性及默认值如下:
parser = OptionParser(usage="%prog [options]", version=None, description=None, conflict_handler="error",
add_help_option=True, prog=os.path.basename(sys.argv[0]), epilog=None,
formatter=IndentedHelpFormatter, option_list=[], option_class=optparse.Option)
详细介绍:
OptionParser.usage: 程序的使用信息。当调用程序帮助时显示的帮助信息,一般是显示在最前面,默认值为“%prog [options] version=None”,其中的%prog类似于一个隐式的格式化字符串,默认值为sys.argv[0],也就是调用的程序名称。这个%prog也可以用在description参数中。
OptionParser.version : 程序的版本信息。默认为None,如果提供参数,会自动生成 --version 命令参数,可以直接程序名加--version就能看到这个信息。
OptionParser.description: 程序的功能信息。默认为None,显示帮助信息时,显示在usage之后,options之前。
OptionParser.description: 程序的功能信息。默认为None,显示帮助信息时,显示在usage之后,options之前。
OptionParser.prog: 用于usage,description中%prog的显示,默认为程序名称,可以自己修改参数。
OptionParser.epilog: 程序的附加信息。默认为None显示帮助信息时,显示在options之后。
OptionParser.formatter: 程序帮助信息的显示格式,默认为IndentedHelpFormatter。