1. wiki
optparse 是 python 内建模块,用于处理命令行参数。
使用时可以利用长短选项就行优雅传参,如
1 | <yourscript> -name hello --file=test.txt --quiet |
2. 使用
2.1. 初始化 parser = OptionParser()
初始化一个 OptionParser
,其有 2 个参数
1 | parser = OptionParser(usage='Usage: %prog [options] arg1 arg2 ...',version='%prog 1.0') |
usage
: 定义使用方法,会展示在--help
首行version
: 用来显示当前脚本的版本
其还有一些预置参数,方便调用
%prog
: 等同于os.path.basename(sys.argv[0])
,即当前运行的脚本的名字
2.2. 添加参数 parser.add_option()
向该实例中添加选项,常用的有 7 个参数
1 | parser.add_option('-f','--file', |
-f
,--file
: 表示一个是短 option 一个是长 option,有 1 个即可dest
: 将 option 后面的值保存到该选项后的变量中,之后使用.
调用action
: 表示将 option 后面的值如何处理,常用的有store
,store_true
,store_false
store
: 默认类型,将 option 后值存储到dest
后的参数中,可以使用option.filename
调用store_true
: 无需提供 option 后的值,会保存布尔值 true 到dest
指定的变量中store_false
: 无需提供 option 后的值,会保存布尔值 false 到dest
指定的变量中
metavar
: 在显示帮助时显示,未指定时,会显示dest
所指定的变量名default
: 该 option 的默认值,如果参数后面没有指定值,将默认为变量default
的值help
: 显示的帮助提示信息type
: 表示这个参数值的类型必须是 str 字符型,如果是其他类型那么将强制转换为 str(可能会报错)
2.3. 添加参数分组 group = OptionGroup()
可选,有时候为将参数进行分类,此时可调用 OptionGroup
类,定制以组显示的选项参数,其有 3 个参数
1 | group = optparse.OptionGroup(parser, title, description=None) |
parser
: OptionParser 初始化后的实例title
: 组名,会在组首行打印description
: 组的详细描述
使用方法为
group.add_option()
: 向组内添加选项,参数与 parser 相同parser.add_option_group(group)
: 将组注册到 OptionParser 实例中
2.4. 解析参数值 parser.parse_args()
调用解析 parse_args()
解析后,返回的 2 个值
1 | options,args = parser.parse_args() |
options
: 是一个对象(optpars.Values
),保存有命令行参数值。只要知道dest
参数名,就可以访问其对应的值,如options.filename
args
: 是一个位置参数的列表
3. 实战
下述为使用实例
1 | # coding = utf-8 |
当使用命令行执行 python.exe demo_optparase.py --help
,或在代码中调用 parser.print_help()
,显示结果如下:
1 | Usage: demo_optparase.py [options] arg1 arg2 ... |