IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python之OptionParser模块使用 -> 正文阅读

[Python知识库]Python之OptionParser模块使用

Python——OptionParser模块

官网link:https://docs.python.org/3/library/optparse.html

介绍

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.51cto.com/u_15102970/2638697
②https://www.cnblogs.com/blacksunny/p/5315545.html
③http://www.ttlsa.com/python/python-optionparser-usage/

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 20:39:24  更:2022-02-09 20:39:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:43:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码