Python之OptionParser模块使用详解

目录
  • 介绍
  • 基本用法
  • 参数选项
    • OptionParser()
    • parser.add_option()
  • 生成帮助
  • 错误提示
  • 代码示例
  • 总结

介绍

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

总结

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

(0)

相关推荐

  • python中常用的内置模块汇总

    内置模块(一) Python内置的模块有很多,我们也已经接触了不少相关模块,接下来咱们就来做一些汇总和介绍. 内置模块有很多 & 模块中的功能也非常多,我们是没有办法注意全局给大家讲解,在此我会整理出项目开发最常用的来进行讲解. os import os # 1. 获取当前脚本绝对路径 """ abs_path = os.path.abspath(__file__) print(abs_path) # 2. 获取当前文件的上级目录 base_path = os.pat

  • Python numpy 模块介绍

    目录 1. numpy 简介 numpy 应用场景 numpy 模块安装 numpy 模块使用 2. numpy 特点 3. numpy 常用方法 4. 实例 前言: 在motplotlib的学习过程中,我们使用最多的就是numpy模块. numpy 模块被称为 matplotlib 模块绘制图表伴侣. xdm,接下来我们来对 matplotlib 伴侣-numpy 模块相关知识的学习 1. numpy 简介 numpy 模块是 Python 支持对大量数组进行科学计算的第三方库. numpy

  • Python中shutil模块的使用详解

    简介:shutil 模块提供了一系列对文件和文件集合的高阶操作.特别是提供了一些支持文件拷贝和删除的函数,该模块主要强大之处在于其对文件的复制与删除操作更是比较支持好. 主要方法: 1.复制文件 2.复制文件夹 3.文件.文件夹移动 4.文件.文件夹改名 5.永久删除文件和文件夹 6.文件.文件夹进行打包 复制文件.并进行文件改名: import shutil # 复制文件.并进行文件改名 copy src_copy = r"D:\codes\ai2022\test1\a1.txt"

  • Python中BeautifulSoup模块详解

    目录 前言 安装库 导入库 解析文档示例 提取数据示例 CSS选择器 实例小项目 总结 前言 BeautifulSoup是主要以解析web网页的Python模块,它会提供一些强大的解释器,以解析网页,然后提供一些函数,从页面中提取所需要的数据,目前是Python爬虫中最常用的模块之一. 安装库 在使用前需要安装库,这里建议安装bs4,也就是第四版本,因为根据官方文档第三版的已经停止更新.同时安装lxml解释器 pip3 install bs4 pip3 install lxml 导入库 from

  • python命令行参数解析OptionParser类用法实例

    本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下: from optparse import OptionParser parser = OptionParser(usage="usage:%prog [optinos] filepath") parser.add_option("-t", "--timeout", action = "store", type =

  • Python中optionParser模块的使用方法实例教程

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. 示例如下: from optparse impo

  • Python之OptionParser模块使用详解

    目录 介绍 基本用法 参数选项 OptionParser() parser.add_option() 生成帮助 错误提示 代码示例 总结 介绍 OptionParser是一个更方便.更灵活.更强大的用于解析命令行选项的库,使用更具声明性的命令行分析样式:创建 OptionParser ,用选项填充它,并解析命令行. optparse 允许用户以常规GNU/POSIX语法指定选项,并另外为您生成用法和帮助消息 基本用法 ①from optparse import OptionParser #导入模

  • python logging日志模块的详解

    python logging日志模块的详解 日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如.磁盘空间低").这个软件还能按预期工作. ERROR:更严重的问题,软件没能执行一些功能 CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行 这5个等级,也

  • Python之re模块案例详解

    一.正则表达式   re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用.注意: re模块是python独有的 正则表达式所有编程语言都可以使用 re模块.正则表达式是对字符串进行操作 因为,re模块中的方法大都借助于正则表达式,故先学习正则表达式. (一)常用正则  1.字符组 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 正则 待匹配字符 匹配

  • Python之os模块案例详解

    OS模块 import os 1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统 print(os.name) print('Linux' if os.name == 'posix' else 'Windows') posix Linux 2.操作系统的详细信息 info = os.uname() print(info) print(info.sysname) print(info.nodename) posix.uname_result(sysname='

  • Python中Numpy模块使用详解

    目录 NumPy ndarray对象 ​ ​Numpy数据类型​​ Numpy数组属性 NumPy NumPy(Numerical Python) 是 Python 的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Nupmy可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)).据说NumPy将Python相当于变成一种免费的更强大的MatLab系统.

  • Python中itertools模块用法详解

    本文实例讲述了Python中itertools模块用法,分享给大家供大家参考.具体分析如下: 一般来说,itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用. chain(iter1, iter2, ..., iterN): 给出一组迭代器(iter1, iter2, ..., iterN),此函数创建一个新迭代器来将所有的迭代器链接起来,返回的迭代器从it

  • Python线程threading模块用法详解

    本文实例讲述了Python线程threading模块用法.分享给大家供大家参考,具体如下: threading-更高级别的线程接口 源代码:Lib/threading.py 该模块在较低级别thread模块之上构建更高级别的线程接口.另请参见mutex和Queue模块. 该dummy_threading模块适用于threading因thread缺失而无法使用的情况 . 注意: 从Python 2.6开始,该模块提供 符合 PEP 8的别名和属性,以替换camelCase受Java的线程API启发

  • python 爬虫请求模块requests详解

    requests 相比urllib,第三方库requests更加简单人性化,是爬虫工作中常用的库 requests安装 初级爬虫的开始主要是使用requests模块 安装requests模块: Windows系统: cmd中: pip install requests mac系统中: 终端中: pip3 install requests requests库的基本使用 import requests url = 'https://www.csdn.net/' reponse = requests.

  • Python中标准模块importlib详解

    1 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外,importlib允许程序员创建他们自定义的对象,可用于引入过程(也称为importer). 什么是imp? 另外有一个叫做imp的模块,它提供给Python import语句机制的接口.这个模块在Python 3.4中被否决,目的就是为了只使用importlib. 这个模块有些复杂,因此我们在这篇博文中主要讨论以下几个主题: •动态引入

  • Python的时间模块datetime详解

    datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1. datetime模块定义了5个类,分别是 1.datetime.date:表示日期的类 2.datetime.datetime:表示日期时间的类 3.datetime.time:表示时间的类 4.datetime.timedelta:表示时间间隔,即两个时间点的间隔 5.datetime.tzinfo:时区的相关信息 一.首先看一下datetime.date类

随机推荐