作用:一种类似于dos命令行的一种设计模块,例如:dos命令中添加-f会触发一种事件

          可以自定义一些指令,用来完成某些操作

optparse.OptionParser()

optionparser()类

--该类提供了optparse一些常用的方法

from optparser import OptionParser
parser = OptionParser()

--parser.add_option()

用来自定义指令

parser.add_option("-f", "--fil")
(option, params) = parser.parser_args()
print(option)
print(params)

--两个参数,一个是命令的简写(-简写名称)一个是命令的全称(--全称名称)

1)一个指令附加一条信息

(pytorch01) D:\编程项目\Python\svm_study>python test2.py -f 2
{'fil': '2'}
[]

2)无指令附加信息

(pytorch01) D:\编程项目\Python\svm_study>python test2.py 1 2 3 4
{'fil': None}
['1', '2', '3', '4']

3)一个指令附加多条信息

(pytorch01) D:\编程项目\Python\svm_study>python test2.py -f 1 2 3 4
{'fil': '1'}
['2', '3', '4']

4)有效指令前附加信息

(pytorch01) D:\编程项目\Python\svm_study>python test2.py 1 -f 2 3 4
{'fil': '2'}
['1', '3', '4']

5)综合指令

(pytorch01) D:\编程项目\Python\svm_study>python test2.py 1 -f 2 3 x=4
{'fil': '2'}
['1', '3', 'x=4']

综上:

parser.parser_args()返回的是一个字典类型数据,其中的key值由定义进行确定,有则记录,无则由params全部打包带走

注:parser.parser_args([可以自行指定命令及对应数据]),此时输入其他参数无效,也不会被params打包带走

parser.add_option("-f", "--file")
(options, args) = parser.parse_args(["-f", "12"])
#与["-f12"]等价
print(options)
print(args)
(pytorch01) D:\编程项目\Python\svm_study>python test2.py -f 1 2 3
{'filename': '12'}
[]

上面的写法仅仅写了两个参数,下面我们来丰富一下其他参数

parser.add_option("-f", "--file", action="store", type="string", dest="filename", default="哈哈")
(options, args) = parser.parse_args()
print(options)
print(options.filename, type(options.filename))
print(args)
(pytorch01) D:\编程项目\Python\svm_study>python test2.py -f 1 2 3
{'filename': '1'}
12 <class 'str'>
['2', '3']

可以看到

1)dest=""

该字符串用来覆盖之前的key名,也就是选项名(真正的命名)

2)action=""

①为store时:告诉optparse按照add_option时定义的那样解析,即必须有数据给指令。

②为store_true时:option后面有参数那么选项值为True,默认指令数据为True。

③为store_false时:option后面有参数那么选项值为False,默认指令数据为False。

3)type=""

该数据用来指定命令后面的参数类型

4)default=""

该数据用于指定一个默认参数给指令,一旦指定,即不会改变

5)help=""

该数据又来解释说明对应命令,该数据在parser.print_help时输出

6)metavar=""

该数据用来解释说明简称和全称,该数据在parser.print_help时输出

--parser.print_help()

用来输出整个命令的内容说明

USAGE = "one two three"
parser = OptionParser(USAGE)
parser.add_option("-f", "--file", action="store", type="string", dest="filename", default="hahaha", help="no help")
parser.print_usage()
parser.print_help()
(pytorch01) D:\编程项目\Python\svm_study>python test2.py -f 1 2 3
Usage: one two threeUsage: one two threeOptions:-h, --help            show this help message and exit-f FILENAME, --file=FILENAMEno help

optionParser(标题的内容)

如果标题内容有输入,则parser.print_usage()就会调用这个内容,但是无论是否调用,该内容总会在窗口输出

以上内容参考:Optparse模块学习,optparse

Python模块学习-----optparse相关推荐

  1. Python模块学习——optparse

    Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功能强大 ...

  2. python textwrap_python2.7.3编译python模块学习- textwrap 文本包装和填充

    python模块学习- textwrap 文本包装和填充 代码实例: sample_text = ''' The textwrap module can beused to format text f ...

  3. Python模块学习 - 用tinify模块压缩和优化图片

    Python模块学习 - 用tinify模块压缩和优化图片 tinify模块 功能描述:TinyPNG和TinyJPG网站提供了压缩和优化.png和.jpg格式图片的功能.虽然可以很轻松地使用网页版进 ...

  4. Python模块学习 ---- zlib 数据压缩

    Python模块学习 ---- zlib 数据压缩 目录(?)[+] Python标准模块中,有多个模块用于数据的压缩与解压缩,如zipfile,gzip, bz2等等.上次介绍了zipfile模块, ...

  5. python模块学习笔记

    python模块学习笔记 1.Python自动发送邮件smtplib 2.制作二维码图片MyQR 3.绝对值模块math 4.CSV模块 5.openpyxl 模块,操作Excel文件 ExcelMa ...

  6. Python模块学习:glob 文件路径查找

    文章转载自<伯乐在线>原文出处: Darkbull Python模块学习:glob 文件路径查找 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用w ...

  7. 解惑Python模块学习,该如何着手操作...

    Python模块 晚上和朋友聊天,说到公司要求精兵计划,全员都要有编程能力.然后C.Java.Python-对于零基础入门的,当然是选择Python的人较多了.可朋友说他只是看了简单的语法,可pyth ...

  8. 【Python模块学习】pandas模块简介

    pandas模块学习 一.背景概述 Pandas (Python Data Analysis Library) 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. numpy更加适用 ...

  9. python模块学习(1)

    模块让你能够有逻辑地组织你的Python代码段.把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 简单地说,模块就是一个保存了P ...

最新文章

  1. com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'user'
  2. mysql保留2位小数字段如何设置 浮点数
  3. linux学习笔记 2013-09-02
  4. HBase删除和修改操作
  5. java8 streams_Java 8 Streams:过滤和谓词否定
  6. 使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)
  7. Linux 学习笔记 二
  8. android alarmmanager管理,android alarmmanager需要权限吗
  9. Github 教程 -- 使用指南
  10. 【Verilog基础】二进制码与格雷码之间的相互转换
  11. C语言实现一元二次方程的实根和复根
  12. 如何制作和部署war包
  13. 需求分析师面试题案例_如何准备作为分析师的业务案例面试
  14. (八)高德地图之添加marker标记点
  15. 网络层(四)划分子网
  16. 计算机网络原理ip计算,计算机网络原理IP地址计算题
  17. 基于ZYNQ的开源CANopen协议栈CANFestival移植
  18. 入门 Android Lint
  19. openGL贝塞尔曲面细分
  20. IT培训——职业教育帮你更快成功

热门文章

  1. JAVA 进制转换工具类 10进制转16进制 10进制转2进制 16进制转2进制 16进制10进制 2进制转10进制 2进制转16进制
  2. Three.js 开发之 物体围绕自己轴心旋转(二)
  3. DELMIA软件教程之仿真项目文件夹结构
  4. 面试:m3u8到底是什么格式
  5. Android百度地图——搜索服务之周边检索
  6. %f %.2f %lf %.2lf的含义
  7. 企业系统之间数据同步处理
  8. 人生苦短我用Python 五:ERROR: No matching distribution found for REfo==0.13
  9. C# 基于AE的GIS二次开发实例-----台风信息系统
  10. Android使用NFC模拟M卡实现 (一)