首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

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

2012-10-12 
python中使用optparse模块简化命令行编写的复杂度python中的optparse模块用来编写命令行工具非常实用,下面

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 pythonfrom optparse import OptionParserimport sysdef 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.jobif __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

?

?

?

?

?

热点排行