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_falsestore: 默认类型,将 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.filenameargs: 是一个位置参数的列表
3. 实战
下述为使用实例
1 | # coding = utf-8 |
当使用命令行执行 python.exe demo_optparase.py --help ,或在代码中调用 parser.print_help(),显示结果如下:
1 | Usage: demo_optparase.py [options] arg1 arg2 ... |
