optionparse模块简述

optionparse模块简述


该模块的官方API: https://docs.python.org/3.7/library/optparse.html?highlight=optionparser#optparse.OptionParser
首先import该模块,然后创建一个对象,再利用parser.add_option(…)向其中添加参数,最后利用parse_args()进行解析。如下是一个简单的实例:

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_true", dest="verbose", default=True,
                  help="don't print status messages to stdout")

(options, args) = parser.parse_args()

在这里插入图片描述
parse_args()返回两个参数:options和args。options是根据相应规则保存的结果(有的博客上说是字典,官方API上:an object,说options.filename为对应的值),args是用list保存多余的部分。

add_option()中可以定义一个或者多个字符用来方便的传入参数,但至少应该有一个。add_option()中的主要参数有:action,type,dest,help。

action

    action是最基本的,它告诉optparse当遇见传入的参数时应该怎么做(把值保存进变量的方式),这里列出action主要的可选项:store;store_true;store_false
    store:stroe是默认选项,以上例来说,当遇见”-f“或”--file“时,就把下一个输入存入options.filename中,这里注意格式要与type一致。store_true上例中有一个,表示当遇见”-q“或”--quiet“,就将options.verbose设置为true,没遇见就设置为None;store_false则相反,当命令行出现对应字段是就设置为false。

在这里插入图片描述
"store_const"保存一个常数值。
"append"向list中添加一个参数。
"count"计数器加一。
"callback"调用特定的函数。

Default values

设置默认值:用default参数,action为store时就没什么讲的,有的话就保存,没得话看看有没有输入,再没就设为None。

parser.add_option("-v", action="store_false", dest="verbose", default=True)
#表示verbose默认设置为True,当有-v输入时,verbose变为false
parser.add_option("-v", action="store_true", dest="verbose")
#没输入时,verbose为None

还可以用set_defaults(verbose=True)函数进行初始值的设定,只要set_defaults在parse_args的前面任意位置都可以。

parser.set_defaults(verbose=True)
parser.add_option(...)
(options, args) = parser.parse_args()

Grouping Options

还可以进行分组,方便管理。

group = OptionGroup(parser, "Dangerous Options",
                    "Caution: use these options at your own risk.  "
                    "It is believed that some of them bite.")
group.add_option("-g", action="store_true", help="Group option.")
parser.add_option_group(group)

一个稍微麻烦的,添加两个组。

group = OptionGroup(parser, "Dangerous Options",
                    "Caution: use these options at your own risk.  "
                    "It is believed that some of them bite.")
group.add_option("-g", action="store_true", help="Group option.")
parser.add_option_group(group)

group = OptionGroup(parser, "Debug Options")
group.add_option("-d", "--debug", action="store_true",
                 help="Print debug information")
group.add_option("-s", "--sql", action="store_true",
                 help="Print all SQL statements executed")
group.add_option("-e", action="store_true", help="Print every action done")
parser.add_option_group(group)

用OptionParser.get_option_group(opt_str)进行读取组。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值