# coding = utf-8

 from optparse import OptionParser
from optparse import OptionGroup usage = '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类,定制以组显示的option group.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 some
    of them bite.

-g                  Group option.

Debug Options:
    -d, --debug         Print debug information.
    -s, --sql           Print all SQL statements executed
    -e                  Print every action done

python optparse模块的简单用法的更多相关文章

  1. python OptParse模块的用法详解

    OptParse模块的简单介绍 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只能简单处理 命令行参数: 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成 ...

  2. python制作简单excel统计报表2之操作excel的模块openpyxl简单用法

    python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...

  3. python random模块导入及用法

    random是程序随机数,很多地方用到,验证码,图片上传的图片名称等,下面说说python random模块导入及用法 1,模块导入 import random 2,random用法 random.r ...

  4. python Calendar 模块导入及用法

    Calendar 是python 日历模块,此模块的函数都是日历相关的,例如打印某月的字符月历,星期之类的模块,下面剖析python Calendar 模块导入及用法. 1,python导入日历模块 ...

  5. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  6. Python中time和datetime模块的简单用法

    python中与时间相关的一个模块是time模块,datetime模块可以看为是time模块的高级封装. time模块中经常用到的有一下几个方法: time()用来获取时间戳,表示的结果为从1970年 ...

  7. Python#常用的模块和简单用法

    目录 random 随机模块 os 文件夹模块: time 时间模块: matplotlab.pyplot 作图模块 mpl_toolkits.mplot3d 绘制3D图模块 Pygame Reque ...

  8. python模块turtle简单用法

    ##初始化turtle:t = turtle.Turtle() 或者 t = turtle.Pen()##查询turtle状态#位置t.position() #箭头朝向,箭头朝向按照顺时针或者逆时针偏 ...

  9. python optparse模块的用法

    引用原博主文章链接: https://www.cnblogs.com/darkpig/p/5717902.html

随机推荐

  1. java性能监控工具jps-windows

    jps Lists the instrumented Java Virtual Machines (JVMs) on the target system. This command is experi ...

  2. APP公布到应用市场(苹果APP STORE+安卓各大应用市场)

    注意事项 1.应用要签名,为了以后可以顺利更新应用.要保持每次的签名一致,所以要妥善保管好签名数据. 2.进行公布測试,最好有个检查表,每次公布的时候进行核查. 苹果APP STORE 一.证书的导出 ...

  3. java开始到熟悉103-104

    本次内容:linkedlist() 此次是承接上次arraylist(),自己实现linkedlist()(内容较少) package list; /** * 自定义linkedlist类 * @au ...

  4. Linq实现SQL in

    比如 Id in (1,2,3) int[] a={1,2,3}; list.Where(x=>a.Contains(x.Id))

  5. Nginx学习——进程模型(master 进程)

    进程模型 Nginx分为Single和Master两种进程模型.Single模型即为单进程方式工作,具有较差的容错能力,不适合生产之用.Master模型即为一个master进程+N个worker进程的 ...

  6. POSIX标准中的 “ 限制 ”

    前言 在POSIX标准中,定义了许多限制.这些限制大约分为五类,不同类型的限制获取的方式不一样. 限制值分类 1. 不变的最小值 这类型的限制值是静态的,固定的. 2. 不变值 同上 3. 运行时可以 ...

  7. 第 2 章 第 1 题 同位词问题 下问 Multimap实现

    问题分析 输入:一个任意的单词和一个内含多个乱序单词的字典文件 输出:该单词在字典中的所有同位词 约束:允许事先对字典进行预处理 解决思路 上问的程序有个缺点 - 我们必须遍历完整个字典文件才能输出所 ...

  8. 优化梯度计算的改进的HS光流算法

    前言 在经典HS光流算法中,图像中两点间的灰度变化被假定为线性的,但实际上灰度变化是非线性的.本文详细分析了灰度估计不准确造成的偏差并提出了一种改进HS光流算法,这种算法可以得到较好的计算结果,并能明 ...

  9. EasyRTMP实现对接海康、大华等IPCamera SDK进行RTMP推送直播功能

    本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603 Demo项目介绍 EasyRTMP Demo代码下载地址https://github.c ...

  10. 程序员必知的8大排序(java实现)

    先来看看8种排序之间的关系: