`

python中使用optparse模块简化命令行编写的复杂度

 
阅读更多

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

 

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

person.py 模块:

 

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

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

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

 

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

 

#!/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

 

 

 

 

 

分享到:
评论

相关推荐

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

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

    python optparse模块使用实例

    主要介绍了python optparse模块使用实例,optparse是专门来处理命令行选项的,本文就讲解了它的使用方法,需要的朋友可以参考下

    Python中optparse模块使用浅析

    使用此模块前,首先需要导入模块中的类OptionParser,然后创建它的一个实例(对象): 复制代码 代码如下: from optparse import OptionParser parser = OptionParser() #这里也可以定义类的参数,后续有 接着就...

    python optparse命令解析模块.docx

    Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只能简单处理 命令行参数; 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。会自动帮你负责-h...

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

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

    Python中最好用的命令行参数解析工具(argparse)

    optparse,功能强大,易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。 argparse,使其更加容易的编写用户友好的命令行接口。它所需的程序进程了参数定义,argparse将更好的解析sy

    python命令行参数用法实例分析

    主要介绍了python命令行参数用法,结合实例形式分析了Python基于optparse模块处理命令行参数相关使用技巧,需要的朋友可以参考下

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

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

    python处理命令行参数.pdf

    Python 有两个内建的模块用于处理命令行参数,一个是 getopt,《Deep in python》一书中也有提到,只能简单处理命令行参数;另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的、符合 Unix/Posix ...

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

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

    Python解析命令行读取参数之argparse模块

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包 使得这一工作变得简单而规范。PS:optparse包是类似的功能,只不过写起来更麻烦一些。 如果脚本很...

    Python解析命令行读取参数–argparse模块使用方法

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包使得这一工作变得简单而规范。PS:optparse包是类似的功能,只不过写起来更麻烦一些。 如果脚本很...

    详解python的argpare和click模块小结

    # argparse是python的标准库中用来解析命令行参数的模块,用来替代已经过时的optparse模块,argparse能够根据程序中的定义的sys.argv中解析出这些参数, # 并自动生成帮助和使用信息 2、模块常用的参数 # 参数说明...

    optparse.net

    很显然,命令行界面是采用输入命令的方式,来控制程序的运行参数,由于在C#等程序中,命令行的参数是以字符串或字符串数组的形式提供给开发人员的,开发人员必须自己对该字符串或字符串数组进行解析,也额外增加了...

    linux-optparseBASH的简单命令行参数解析器

    optparse - BASH的简单命令行参数解析器

    cpp-optparse是一个开源可移植的可重入的和可嵌入的类getopt命令行参数解析器

    optparse是一个开源, 可移植的, 可重入的和可嵌入的类getopt命令行参数解析器. 它支持POSIX getopt选项字符串, GNU风格的长参数解析, 参数置换和子命令处理.

    swift-optparse-applicative:使用应用程序进行命令行解析(从HaskellScala移植的optparse-applicative)

    swift-optparse-applicative:使用应用程序进行命令行解析(从HaskellScala移植的optparse-applicative)

Global site tag (gtag.js) - Google Analytics