optparse
在使用python进行命令开发的过程中,经常需要使用的就是命令行参数了,本章节介绍一个功能强大,易于使用的内建命令行参数处理模块optparse。
简单的使用
首先需要创建一个OptionParser对象,该类属于optparse模块,因此使用前需要导入。
|
|
可以不写参数,参数用来指定帮助的显示信息,如果没有指定,则默认显示“usage: %prog [options]”。
构造方法
|
|
add_option函数
创建OptionParser对象之后,就可以使用add_option来定义命令行参数了
参数
add_option的前两参数分别为短参数名和长参数名。其中长参数名可以省略。
dest
定义程序内参数值的名字,之后通过这个名字来取参数的值。如果为空,则使用不加“-”的短参数名。
action
action是add_option的一个参数,用来指定解析到参数后的操作。默认值为“store”,表示将参数值保存到options对象中。
其中action值的store还可以有其他两种类型:store_ture和store_false,用来处理不带参数值的参数。
action可以使用的值出了store_true和store_false之外,还可以使用store、store_const、append、count、callback等。
type
type是add_option方法的一个参数,用来指定参数值的类型,默认为String。还可以指定为“int”、“float”等
default
通过add_option方法的default参数可以对命令行参数设置默认值。
help
用于指定参数在帮助程序中显示的信息,详细请见下方的“生成帮助”章节。
metavar
metavar配合help参数,用于帮助提醒用户该命令行所期待的参数,详细请见下方的“生成帮助”章节。
choices
当type为choices时,需要设置此值。
const
指定一个常数,配合action为store_const和append_const时一起使用。
parse_args函数
一旦定义好了所有的命令行参数,就可以调用parse_args()来解析命令行。
参数
你可以传递一个命令行参数列表给parse_args方法,否则默认使用sys.argv[:1]。
parse_args方法有两个返回值:
options optpars.Values对象,保存了所有命令行的值。只要知道命令行参数名,就可以得到。
args 一个由 positional arguments组成的列表。
set_defaults函数
除了在add_option方法中使用default参数设置默认值,还可以使用set_default函数,来统一设置默认值。该方法应该在所有add_option函数之前调用。
set_defaults函数,可以用来设置多个默认值。
has_option方法
用来检查是否有相应的选项
remove_option()
用来删除相应的选项。
生成帮助
optparse的另一个方便的功能便是自动生成帮助,而你需要做的事情就是在调用add_option方法时指定help参数。
当optparse解析到-h或者–help时,就会调用parser.print_help()方法来打印帮助信息。
分组
异常处理
在出现用户输入无效的、不完整的命令行参数而发生异常时,optparse可以自动检测并处理,比如参数值类型错误等。
用户也可以使用parser.error函数来手动抛出异常。