Python学习:optparse模块

news/2025/2/21 8:29:03/

optparse,是一个更够让程序设计人员轻松设计出简单明了、易于使用、符合标准的Unix命令例程式的Python模块,生成使用和帮助信息。

参数说明

  • dest:用于保存输入的临时变量,其值通过options的属性进行访问,存储的内容是dest之前输入的参数,多个参数用逗号分隔
  • type: 用于检查命令行参数传入的参数的数据类型是否符合要求,有 string,int,float 等类型
  • help:用于生成帮助信息
  • default: 给dest的默认值,如果用户没有在命令行参数给dest分配值,则使用默认值

函数说明

  • parse = optparse.OptionParser(usage, version=“%prog 版本解释”)

  • parse.add_option(‘-a’, ‘–aaa’, dest=‘aaa’, help=‘aaa,aaa’)

  • group1 = optparse.OptionGroup(parse, “fff”, ‘dddd’)

  • group1.add_option(‘-s’, ‘–server’, dest=‘hhhh’, help=“dddd”)

  • parse.add_option_group(group1)

  • options, args = parse.parse_args()

简单使用

from optparse import OptionParser
from optparse import OptionGroupusage = 'Usage: %prog [options] arg1 arg2 ...'parser = OptionParser(usage,version='%prog 1.0')
#通过OptionParser类创建parser实例,初始参数usage中的%prog等同于os.path.basename(sys.argv[0]),即
#你当前所运行的脚本的名字,version参数用来显示当前脚本的版本。'''
添加参数,-f、--file是长短options,有一即可。action用来表示将option后面的值如何处理,比如:
XXX.py -f test.txt
经过parser.parse_args()处理后,则将test.txt这个值存储进-f所代表的一个对象,即定义-f中的dest
即option.filename = 'test.txt'
action的常用选项还有store_true,store_false等,这两个通常在布尔值的选项中使用。metavar仅在显示帮助中有用,如在显示帮助时会有:
-f FILE, --filename=FILE    write output to FILE
-m MODE, --mode=MODE  interaction mode: novice, intermediate, or expert[default: intermediate]
如果-f这一项没有metavr参数,则在上面会显示为-f FILENAME --filename=FILENAME,即会显示dest的值defalut是某一选项的默认值,当调用脚本时,参数没有指定值时,即采用default的默认值。
'''parser.add_option('-f','--file',action='store',dest='filename',metavar='FILE',help='write output to FILE')parser.add_option('-m','--mode',default = 'intermediate',help='interaction mode:novice,intermediate,or expert [default:%default]')
parser.add_option('-v','--verbose',action='store_true',dest='verbose',default=True,help='make lots of noise [default]')parser.add_option('-q','--quiet',action='store_false',dest='verbose',help="be vewwy quiet (I'm hunting wabbits)")group = OptionGroup(parser,'Dangerous Options','Caution: use these options at your own risk.''It is believed that some of them bite.')
#调用OptionGroup类,定制以组显示的optiongroup.add_option('-g',action='store_true',help='Group option.')
#添加option
parser.add_option_group(group)
#将刚定制的groupoption加入parser中group = OptionGroup(parser,'Debug Options')
group.add_option('-d','--debug',action='store_true',help='Print debug information.')
group.add_option('-s','--sql',action='store_true',help='Print all SQL statements executed')
group.add_option('-e',action='store_true',help='Print every action done')
parser.add_option_group(group)(options,args) = parser.parse_args()
#解析脚本输入的参数值,options是一个包含了option值的对象
#args是一个位置参数的列表

python.exe xxx.py --help 显示结果如下:

Usage: test_optparse.py [options] arg1 arg2 ...Options:--version             show program's version number and exit-h, --help            show this help message and exit-f FILE, --file=FILE  write output to FILE-m MODE, --mode=MODE  interaction mode:novice,intermediate,or expert[default:intermediate]-v, --verbose         make lots of noise [default]-q, --quiet           be vewwy quiet (I'm hunting wabbits)Dangerous Options:Caution: use these options at your own risk.It is believed that someof them bite.-g                  Group option.Debug Options:-d, --debug         Print debug information.-s, --sql           Print all SQL statements executed-e                  Print every action done

http://www.ppmy.cn/news/298.html

相关文章

MuLogin的WebRTC功能介绍与设置

WebRTC 协议可以绕过代理取到一些本机的网卡IP和真实的上网公网IP地址,那么我们可以使用替换模式来让网站取到我们指定的IP信息,或用禁用模式,让被访问的网站不能通过WebRTC协议来取我们的IP地址。这里如果你不知道公网IP是多少,建…

安科瑞安全用电监测,智慧用电装置,导轨式安装带无线通讯功能

安科瑞 王晶淼/司红霞 前言 随着电气化的迅猛发展和用电普及程度的日益提高,电已经成为人类生存和发展必不可少的能源之一。然而,由于种种原因,由电气引发的火灾和爆炸事故也直呈现上升趋势。电气设备的绝缘大量使用塑料、橡胶、绝缘漆、稀释剂等易燃物品,在电气设备运行中,由…

网络规划.1.扩展.IP地址规划

第一章 IPv4 Internet中有数百万台以上的主机和路由器,IP 地址可以确切地标识它们。- 一台主机至少拥有一-个IP地址。任何两台主机的IP地址不能相同,但是允许一台主机拥有多个IP地址。如果一台计算机虽然也连入Internet, 使用Internet 的某些功能&#…

Python的10个编程技巧,你不一定都知道

文末有Python资料下载 1. 原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: 赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个&…

计算机毕业设计JavaWeb端校园报修系统(源码+系统+mysql数据库+lw文档)

计算机毕业设计JavaWeb端校园报修系统(源码系统mysql数据库lw文档) 计算机毕业设计JavaWeb端校园报修系统(源码系统mysql数据库lw文档)本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea…

经典文献阅读之--PL-SLAM(点线SLAM)

0. 简介 之前作者基本都在围绕着特征点提取的路径在学习,最近看到了最近点云PCL推送的《Structure PLP-SLAM: Efficient Sparse Mapping and Localization using Point, Line and Plane for Monocular, RGB-D and Stereo Cameras》。这个工作是基于OpenVSLAM架构的…

【HDU No. 1166】 敌兵布阵

【HDU No. 1166】 敌兵布阵 杭电 OJ 题目地址 【题意】 A国在海岸线沿直线布置了N 个工兵营地。C国通过先进的监测手段对A国每个工兵营地的人数都掌握得一清二楚。每个工兵营地的人数都可能发生变动,可能增加或减少若干人手。 【输入输出】 输入: 第…

1 奥运排行榜 (30分)

代码&#xff1a; #include <algorithm> #include <stdio.h> #include <algorithm> using namespace std;struct node1 {int ID;int glod; }country1[230]; struct node2 {int ID;int award; }country2[230]; struct node3 {int ID;double glod_ave; }count…