Python之OptionParser模块使用详解

 更新时间:2022年02月09日 09:06:16   作者:热气球、  
这篇文章主要为大家详细介绍了Python之OptionParser模块使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

介绍

OptionParser是一个更方便、更灵活、更强大的用于解析命令行选项的库,使用更具声明性的命令行分析样式:创建 OptionParser ,用选项填充它,并解析命令行。 optparse 允许用户以常规GNU/POSIX语法指定选项,并另外为您生成用法和帮助消息

基本用法

①from optparse import OptionParser #导入模块
②parser = OptionParser(...)  #创建实例
③parser.add_option(...) #添加命令行参数
④(options, args) = parser.parse_args() #得到解析后的options对象,查看用户的输入

参数选项

OptionParser()

parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!")
#usage 打印用法
例如: Usage: test.py [options] arg
#version --version时输出版本信息
例如:test.py 1.0
#description  描述信息 --help时输出 
例如:hello OptionParser!

parser.add_option()

parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档")
#action  指明optparser解析参数时该如何处理。默认是store
 - store 表示命令行参数的值保存在options对象中。
 - store_false 中存在 -v verbose 将会返回false,也就是说verbose的值与-v后的具体参数具体项无关,只与-v是否存在有关
 - store_true  与action="store_false"类似,只有其中有参数-v存在时,则verbose的值为true,如果-v不存在,那么verbose的值为None
#type 默认是string,也可以是 int、float等
#dest 指定接收用户输入的值,当action="store"时可以将dest接收的值进打印或比较等其他处理
例如:
from optparse import OptionParser
def main():
    parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!")
    parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME")
    parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档")
    parser.add_option("-q", "--quiet",action="store_false", dest="verbose")
    (options, args) = parser.parse_args()
    print(options.filename)
if __name__ == "__main__":
    main()
#===test.py -f 1输出===#
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f 1
1
#default 设置默认值;如果在命令行上未看到该选项,则default的值为用于该选项的默认值。
#help  --help时 输出该选项的解释说明
例如:
parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档")
#===test.py -h输出===#
-v, --verbose         这是帮助文档

生成帮助

#!/usr/bin/env python3.8.8
# -*- encoding: utf-8 -*-
'''
@File    :   test.py
@Time    :   2022/02/08 11:48:40
@Author  :   热气球 
@Version :   1.0
@Contact :   17695691664@163.com
'''
from optparse import OptionParser
def main():
    parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!")
    parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME")
    parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="这是帮助文档")
    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()
#===test.py -h输出===#
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py --help 
Usage: test.py [options] arg
hello OptionParser!
Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -f FILENAME, --file=FILENAME
                        read data from FILENAME
  -v, --verbose         这是帮助文档
  -q, --quiet
PS C:\Users\Administrator>

错误提示

此示例拿于官网手册

#!/usr/bin/env python3.8.8
# -*- encoding: utf-8 -*-
'''
@File    :   test.py
@Time    :   2022/02/08 11:48:40
@Author  :   热气球 
@Version :   1.0
@Contact :   17695691664@163.com
'''
from optparse import OptionParser
def main():
    parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!")
    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()
#---示例代码解释---#
-v参数 当指定-v时才可以运行此代码,因为-v存在时if options.verbose: 为True
-q参数 当指定-q时表明退出执行,因为action="store_false",所以-q不存在,if options.verbose: 为True
-f参数 指定filename,需要配合-v参数一起使用; -v参数的具体选项值随意设置,存在即可。

#===test.py -v True -f 1输出===#  
reading 1...
#===test.py -f 1输出===#  
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f 1                
Usage: cov-run-desktop-test.py [options] arg
cov-run-desktop-test.py: error: incorrect number of arguments
提示参数不够
#===test.py -f 输出===#
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f  
Usage: cov-run-desktop-test.py [options] arg
cov-run-desktop-test.py: error: -f option requires 1 argument
错误:-f选项需要1个参数

代码示例

#!/usr/bin/env python3.8.8
# -*- encoding: utf-8 -*-
'''
@File    :   test.py
@Time    :   2022/02/08 11:48:40
@Author  :   热气球 
@Version :   1.0
@Contact :   17695691664@163.com
'''

from optparse import OptionParser
def main():
    parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!")
    parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME")
    parser.add_option("-v", "--verbose",action="store", default='reqiqiu',dest="verbosename",help="这是帮助文档")
    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()
#===test.py -h输出===#
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -h     
Usage: test.py [options] arg
hello OptionParser!
Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -f FILENAME, --file=FILENAME
                        read data from FILENAME
  -v VERBOSENAME, --verbose=VERBOSENAME
                        这是帮助文档
  -q, --quiet

#===test.py -v输出===#
PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py --version
test.py 1.0

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!      

相关文章

  • Pandas中DataFrame.head()函数的具体使用

    Pandas中DataFrame.head()函数的具体使用

    DataFrame.head()是Pandas库中一个非常重要的函数,用于返回DataFrame对象的前n行,本文主要介绍了Pandas中DataFrame.head()函数的具体使用,感兴趣的可以了解一下
    2024-07-07
  • Python使用RSA库加密和解密

    Python使用RSA库加密和解密

    这篇文章介绍了Python使用RSA库加密和解密的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 用Python实现zip密码破解实例

    用Python实现zip密码破解实例

    大家好,本篇文章主要讲的是用Python实现zip密码破解实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • python开发之thread实现布朗运动的方法

    python开发之thread实现布朗运动的方法

    这篇文章主要介绍了python开发之thread实现布朗运动的方法,实例分析了Python基于多线程实现绘图的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 连接pandas以及数组转pandas的方法

    连接pandas以及数组转pandas的方法

    今天小编就为大家分享一篇连接pandas以及数组转pandas的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python爬虫爬取爱奇艺电影片库首页的实例代码

    Python爬虫爬取爱奇艺电影片库首页的实例代码

    这篇文章主要介绍了Python爬虫爬取爱奇艺电影片库首页的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Python实现统计给定字符串中重复模式最高子串功能示例

    Python实现统计给定字符串中重复模式最高子串功能示例

    这篇文章主要介绍了Python实现统计给定字符串中重复模式最高子串功能,涉及Python针对字符串的遍历、排序、切片、运算等相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • python基础编程小实例之计算圆的面积

    python基础编程小实例之计算圆的面积

    Python是最常用的编程语言,这种语言就是一种可以快速开发应用的解释型语言,有些用户不知道该怎么在Python编程里计算圆的面积,现在就给大家具体解释一下,下面这篇文章主要给大家介绍了关于python基础编程小实例之计算圆的面积的相关资料,需要的朋友可以参考下
    2023-03-03
  • django创建简单的页面响应实例教程

    django创建简单的页面响应实例教程

    这篇文章主要给大家介绍了关于django如何创建简单的页面响应的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • matplotlib.pyplot画图 图片的二进制流的获取方法

    matplotlib.pyplot画图 图片的二进制流的获取方法

    今天小编就为大家分享一篇matplotlib.pyplot画图 图片的二进制流的获取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论