Python命令行参数解析模块optparse使用实例
admin
2023-07-31 02:15:21
0

示例

复制代码 代码如下:
from optparse import OptionParser
[…]
def main():
    usage = \”usage: %prog [options] arg\”
    parser = OptionParser(usage)
    parser.add_option(\”-f\”, \”–file\”, dest=\”filename\”,
                      help=\”read data from FILENAME\”)
    parser.add_option(\”-v\”, \”–verbose\”,
                      action=\”store_true\”, dest=\”verbose\”)
    parser.add_option(\”-q\”, \”–quiet\”,
                      action=\”store_false\”, dest=\”verbose\”)
    […]
    (options, args) = parser.parse_args()
    if len(args) != 1:
        parser.error(\”incorrect number of arguments\”)
    if options.verbose:
        print \”reading %s…\” % options.filename
    […]

if __name__ == \”__main__\”:
    main()

增加选项(add_option())
复制代码 代码如下:
OptionParser.add_option(option)
OptionParser.add_option(*opt_str, attr=value, …)

定义短选项
复制代码 代码如下:
parser.add_option(“-f”, attr=value, …)

定义长选项
复制代码 代码如下:
parser.add_option(“–foo”, attr=value, …)

如果定义
复制代码 代码如下:
​parser.add_option(\”-f\”, \”–file\”, action=\”store\”, type=\”string\”, dest=\”filename\”)

命令行格式可以有以下形式
复制代码 代码如下:
-ffoo
-f foo
–file=foo
–file foo

解析后结果
复制代码 代码如下:
options.filename = “foo”

解析(parse_args())
复制代码 代码如下:
(options, args) = parser.parse_args()

options 解析后的参数,以字典形式保存
args 不能解析的参数,以列表形式保存

行为(action)

●store 默认行为,保存值到dest
●“store_const” 保存常量
●“append” append this option\’s argument to a list
●“count” increment a counter by one
●“callback” call a specified function

设置默认值(default)

复制代码 代码如下:
parser.add_option(\”-v\”, action=\”store_true\”, dest=\”verbose\”, default=True)
parser.set_defaults(verbose=True)

生成帮助提示(help)

提供help选项即可,可以用parser.print_help()打印出来

复制代码 代码如下:
parser.add_option(“-f”, “–file”, dest=”filename”,help=”write report to FILE”, metavar=”FILE”)

设置boolean值

支持store_true和store_false两个行为

复制代码 代码如下:
parser.add_option(\”-v\”, action=\”store_true\”, dest=\”verbose\”)
parser.add_option(\”-q\”, action=\”store_false\”, dest=\”verbose\”)

如果遇到-v,verbose=True;如果遇到-q,verbose=False

错误处理

复制代码 代码如下:
(options, args) = parser.parse_args()
[…]
if options.a and options.b:
    parser.error(\”options -a and -b are mutually exclusive\”)

选项组(Grouping Options)

格式如下

class optparse.OptionGroup(parser, title, description=None)

复制代码 代码如下:
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)

提示结果如下
复制代码 代码如下:
Usage: [options] arg1 arg2

Options:
  -h, –help            show this help message and exit
  -v, –verbose         make lots of noise [default]
  -q, –quiet           be vewwy quiet (I\’m hunting wabbits)
  -f FILE, –filename=FILE
                        write output to FILE
  -m MODE, –mode=MODE  interaction mode: novice, intermediate, or
                        expert [default: intermediate]

  Dangerous Options:
    Caution: use these options at your own risk.  It is believed that some
    of them bite.

    -g                  Group option.

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...