`
scm002
  • 浏览: 319470 次
社区版块
存档分类
最新评论

python中的optparse模块

 
阅读更多

python中的optparse模块用来编写命令行工具非常实用,下面通过一个例子来阐述一下。

 

----------------------------

person.py 模块:

 

-n/--name | the person's name

-a/--age | the person's age

-j/--job | the psrson's job

 

--------------------------------

 

Python代码 复制代码 收藏代码
  1. #!/usr/bin/env python   
  2.   
  3. from optparse import OptionParser   
  4. import sys   
  5. def main():   
  6.     p = OptionParser()   
  7.     p.add_option('-n','--name',dest='person_name',help='person\'s name',default='person1')   
  8.     p.add_option('-a','--age',default=30, help='person\'s age')   
  9.     p.add_option('-j','--job',default='software engineer', help='person\'s job')   
  10.     options, args = p.parse_args()   
  11.     print 'Hello %s' %options.person_name, ', age is %d' %int(options.age), ',job is %s' %options.job   
  12.   
  13. if __name__ == '__main__':   
  14.     main()  
#!/usr/bin/env python

from optparse import OptionParser
import sys
def main():
    p = OptionParser()
    p.add_option('-n','--name',dest='person_name',help='person\'s name',default='person1')
    p.add_option('-a','--age',default=30, help='person\'s age')
    p.add_option('-j','--job',default='software engineer', help='person\'s job')
    options, args = p.parse_args()
    print 'Hello %s' %options.person_name, ', age is %d' %int(options.age), ',job is %s' %options.job

if __name__ == '__main__':
    main()

 

先来看看OptionParser中的add_option方法,这个方法可以添加命令行参数,支持常见的参数形式,一种是以一个‘-’开头的并跟一个单词的首写字母,另外一个是一‘--’开头的跟一个单词的全称。

 

parse_args()返回两个值:

 

一个是所有可选参数的字典,记录了可选参数以及可选参数对应的值,另外一个是位置参数的列表。在本例中,变量options得到的就是可选参数以及可选参数对应的值,类型为字典。args包含了位置参数的列表。

 

后面的key-work参数可以提供:

 

1)参数的默认值,用default关键字表示,比如default='person1'表示如果没有提供-n/--name,则这个选项的默认值就是person1.

2) 选项的属性,如果没有dest,则用默认的--后面的作为选项的属性,比如对age选项的添加,这里没有dest,所以用age作为默认的属性,可以用options.age得到它的值

3) 对某个选项的帮助信息,用help关键字表示

 

看一下代码的输出:

 

[wangxf@localhost exec]$ ./person.py
Hello person1 , age is 30 ,job is 30

 

 

[wangxf@localhost exec]$ ./person.py -h
Usage: person.py [options]

Options:
  -h, --help            show this help message and exit
  -n PERSON_NAME, --name=PERSON_NAME
                        person's name
  -a AGE, --age=AGE     person's age
  -j JOB, --job=JOB     person's job

 

 

[wangxf@localhost exec]$ ./person.py --name xiaoxiao
Hello xiaoxiao, age is 30 ,job is 30

 

http://zzuwxf.iteye.com/blog/1220989

分享到:
评论

相关推荐

    Python中optparse模块使用浅析

    optparse模块实现的也是类似的功能,它是为脚本传递命令参数。 使用此模块前,首先需要导入模块中的类OptionParser,然后创建它的一个实例(对象): 复制代码 代码如下: from optparse import OptionParser parser ...

    python命令行传参详解,optparse模块OptionParse类的学习.pdf

    Python中的`optparse`模块是用于处理命令行选项和参数的工具,它是Python标准库的一部分。这个模块使得在命令行接口(CLI)的程序中添加和解析参数变得简单且易于理解。下面我们将深入探讨`optparse`的工作原理以及...

    python optparse模块使用实例

    Python的`optparse`模块是Python 2.x版本中用于处理命令行选项的工具,它提供了方便的方式来定义、解析和验证命令行参数。在Python 3.x中,`optparse`已被更强大的`argparse`模块所替代,但对仍在使用Python 2.x的...

    python optparse命令解析模块.docx

    在Python中,还有个较简单的`getopt`模块,但`optparse`因其强大的功能和易用性而更受欢迎。 `optparse`模块的核心在于`OptionParser`类,它允许开发者定义各种命令行选项,并自动处理`-h`或`--help`选项,生成帮助...

    利用python-nmap模块探测所有主机445端口的开放状态.pptx

    使用 Python-Nmap 模块可以编写一个探测主机 445 端口的开放状态的函数,函数中使用 PortScanner()类的 scan() 函数来扫描主机的 445 端口,然后索引扫描结果并打印端口状态。 以下是一个探测主机 445 端口的开放...

    Python命令行参数解析库Commando.zip

    Commando 灵感来自于 Python 的 optparse 模块 以及 JewelCli Java 库,是一个用来定义以及解析 命令行参数的Python工具包。 标签:Commando

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

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值。分享给大家供大家参考之用。具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一...

    Python 2.4 中文api

    `optparse`模块则简化了命令行选项解析。 7. **多线程(Multithreading)**:Python 2.4在多线程编程方面也有所改进,尽管GIL(全局解释器锁)仍然存在,但对线程的管理和同步有了更好的支持。 8. **Unicode支持**...

    python 命令行参数

    首先,需要导入`optparse`模块中的`OptionParser`类,并实例化一个`OptionParser`对象: ```python from optparse import OptionParser parser = OptionParser() ``` ##### 添加命令行选项 接下来,使用`add_...

    python官方2.4.4版本msi安装包

    `optparse`模块,用于命令行选项解析;`anydbm`和`dbm.gnu`模块,为通用数据库接口提供了更多选择。 4. **性能优化**:Python 2.4对解释器进行了优化,提高了运行速度,尤其是对于循环和函数调用。同时,C扩展模块...

    Python 201(Intermediate Python)_Michael Driscoll

    文档中提到了如下几个`collections`模块中的数据类型: - `ChainMap`:允许用户将多个字典链接在一起,使其看起来像一个单独的字典。 - `Counter`:一个用于计数可哈希对象的字典子类。 - `defaultdict`:一种字典...

    Python命令行参数解析模块optparse使用实例

    主要介绍了Python命令行参数解析模块optparse使用实例,本文讲解了增加选项(add_option())、行为(action)、设置默认值(default)、生成帮助提示(help)、设置boolean值、错误处理、选项组(Grouping Options)等内容,需要...

    python software

    在Python 3中,它的功能被拆分到`urllib.request`和`urllib.error`模块中。 这些文件组合在一起,表明这个压缩包可能是一个包含Python 2.7标准库部分组件的集合,用于在没有完整Python环境的系统上运行依赖这些模块...

    python2.5--安装包

    3. **新增模块和库**:Python 2.5添加了一些新的标准库,如`argparse`(虽然在2.7版本中才成为标准),用于命令行参数解析,以及`optparse`,一个早期的命令行选项解析库。 4. **异常处理**:Python 2.5改进了异常...

    python2.5.4 for windows安装版

    此外,`optparse`模块为命令行选项解析提供了便利。 4. **错误处理**:Python 2.5.4对错误处理进行了改进,提高了异常处理的效率,并修复了许多已知的bug。 5. **C API增强**:对于开发者来说,C API的更新使得与...

    python官方2.6.1版本msi安装包

    - 引入了`argparse`模块,这是一个命令行参数解析库,替代了之前的`optparse`,提供了更灵活的接口和更好的用户体验。 2. **语法改进**: - `with`语句的增强:Python 2.6.1支持了`with`语句,提供了一种优雅的...

    python官方2.4.1.ia64版本msi安装包

    - 引入了`__future__`模块,允许开发者在Python 2.x中使用部分Python 3.x的新特性。 2. **性能优化**: - 内部实现的改进,包括字典的哈希算法优化,提高了查找速度。 - 对于循环和列表操作的性能提升,使得大...

Global site tag (gtag.js) - Google Analytics