iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python之OptionParser模块使用详解
  • 381
分享到

Python之OptionParser模块使用详解

2024-04-02 19:04:59 381人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录介绍基本用法参数选项OptionParser()parser.add_option()生成帮助错误提示代码示例总结介绍 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

总结

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

--结束END--

本文标题: Python之OptionParser模块使用详解

本文链接: https://www.lsjlt.com/news/138487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python之OptionParser模块使用详解
    目录介绍基本用法参数选项OptionParser()parser.add_option()生成帮助错误提示代码示例总结介绍 OptionParser是一个更方便、更灵活、更强大的用于...
    99+
    2022-11-13
  • python之sys模块详解
    前言 sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所...
    99+
    2023-09-15
    python 开发语言 pycharm
  • Python之re模块详解
    目录Python——re模块 简介预定义字符特殊字符反斜杠问题匹配方法总结Python——re模块  简介 定义:re模块称为正则表达式; 作用:创建一个"规则表...
    99+
    2022-11-12
  • Python常用内置模块之xml模块(详解)
    xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,...
    99+
    2022-06-04
    模块 详解 常用
  • Python基础之模块详解
    目录一、模块1、模块的四种形式2、为什么要用模块?二、如何用模块1、import 模块名导入重命名:smt变量指向span模块的名称空间导入多个模块2、from 模块名 import...
    99+
    2022-11-11
  • Python学习之加密模块使用详解
    目录hashlib 模块hashlib 模块的介绍hashlib 模块中的常用加密方法hashlib模块情景练习base64 模块base64 模块的介绍base64 模块 模块中的...
    99+
    2022-11-13
  • Python学习之configparser模块的使用详解
    目录1 configparser安装2 configparser简介3 表示方法4 configparser详细使用4.1 对象初始化4.2 获取所有的sections4.3 获取所...
    99+
    2023-01-28
    Python configparser模块使用 Python configparser模块 Python configparser
  • python通配符之glob模块的使用详解
    通配符是一些特殊符号,主要有星号(*)和问号(?),用来模糊搜索文件,“*”可以匹配任意个数个符号, “?”可以匹配单个字符。 当查找文件夹时,可以使用它来代替一个或多个真正...
    99+
    2022-11-12
  • Python标准库之Math,Random模块使用详解
    目录数学模块ceil -- 上取整floor -- 下取整四舍五入pow -- 幂运算sqrt -- 开平方运算fabs -- 绝对值modf -- 拆分整数小数copysign -...
    99+
    2022-11-11
  • Python学习之sys模块使用教程详解
    sys模块 与 os包一样,也是对系统资源进行调用。功能同样也是非常丰富,接下来我们会对 sys模块的一些简单且常用的函数进行介绍,主要针对一些非功能性的函数与属性来认识一些不太常见...
    99+
    2022-11-13
  • Python时间操作之pytz模块使用详解
    目录前言1. pytz 模块概述什么是 pytz 模块国家时区映射关系表pytz 模块使用方法2. pytz 相关方法3. pytz 时区查询4. pytz 日期计算总结前言 在我们...
    99+
    2022-11-13
  • Python基础之hashlib模块详解
    一、hashlib简介 什么叫hash: hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA5...
    99+
    2022-06-02
    Python hashlib模块 python模块
  • Python之re模块案例详解
    一、正则表达式      re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符...
    99+
    2022-11-12
  • Python之os模块案例详解
    OS模块 import os 1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统 print(os.name) print('Linu...
    99+
    2022-11-12
  • 详解Python语法之模块Module
    目录一、定义二、作用三、导入1.import导入import 模块名from importfrom 模块名 import *总结一、定义 包含一系列数据,函数,类的文件,通常以....
    99+
    2022-11-12
  • python常用的时间模块之datetime模块示例详解
    目录一、基本类型1、date类2、time类3、datetime类4、timedelta类二、date类1、返回date对象2、对date对象的操作:三、time类四、datetim...
    99+
    2023-05-20
    python datetime模块 python时间模块
  • 详解Python常用标准库之os模块与shutil模块
    目录系统模块常用方法常用属性文件操作路径模块文件复制移动模块(文件操作)copyfileobj -- 复制文件(内容)copyfile -- 复制文件(内容)copymode -- ...
    99+
    2022-11-11
  • Burpsuite模块之Burpsuite Intruder模块详解
    目录一、简介二、模块说明Burp Suite Intruder的4种攻击类型一 Sniper(狙击手模式)二Battering ram(攻城锤模式)三Pitchfork(草叉模式)四...
    99+
    2022-11-12
  • Python学习之日志模块详解
    目录日志的作用日志的等级logging 模块的使用logging 模块演示小案例OK,今天我们来学习一下 python 中的日志模块,日志模块也是我们日后的开发工作中使用率很高的模块...
    99+
    2022-11-13
  • Python基础之内置模块详解
    目录一、os二、shutil三、sys四、random五、hashlib六、configparser七、xml八、json九、time十、datetime一、os import ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作