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

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值