Python之OptionParser模块使用详解

作者:热气球、 时间:2021-03-08 14:07:48 

介绍

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

来源:https://blog.csdn.net/weixin_42506599/article/details/122830917

标签:Python,OptionParser,模块
0
投稿

猜你喜欢

  • python模块如何查看

    2021-10-26 20:08:35
  • python使用ctypes调用扩展模块的实例方法

    2021-11-01 22:22:58
  • python对象及面向对象技术详解

    2023-05-14 00:04:16
  • JavaScript+Node.js写一款markdown解析器

    2024-04-18 09:36:06
  • 利用Python绘制创意中秋节月饼

    2023-02-19 17:52:41
  • Python实现快速傅里叶变换的方法(FFT)

    2022-09-18 07:21:47
  • 微信小程序自定义导航教程(兼容各种手机)

    2024-04-30 09:53:12
  • Pytorch to(device)用法

    2022-05-04 22:57:19
  • TensorFLow 变量命名空间实例

    2021-06-09 04:40:14
  • 如何处理好网页色彩搭配

    2007-08-10 13:22:00
  • 给zblog加上运行代码功能

    2007-12-19 13:07:00
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间

    2023-08-04 02:11:09
  • Python实现按逗号分隔列表的方法

    2023-06-08 08:32:16
  • 解决python3.x安装numpy成功但import出错的问题

    2023-12-29 22:33:44
  • python reduce 函数使用详解

    2022-11-01 22:20:57
  • Pyqt清空某一个QTreeewidgetItem下的所有分支方法

    2022-01-24 10:29:46
  • python命令行参数解析OptionParser类用法实例

    2022-06-21 17:57:24
  • 在dropDownList中实现既能输入一个新值又能实现下拉选的代码

    2023-07-13 23:37:47
  • python学习之whl文件解释与安装详解

    2021-11-01 18:09:14
  • 为什么是 Python -m

    2022-11-25 16:38:21
  • asp之家 网络编程 m.aspxhome.com