Python命令行应用工具docopt

Python有很多写命令行应用的工具,如argparse, docopt, options...

这里记录一下关于docopt的相关用法。

#!/usr/bin/python
#-*- coding:utf-8 -*-

#######################################
#注意:Usage 必须写,且必须和Options间隔一行
#Usage 中的参数需在<>中,否则无效
#######################################

"""get args from cli.

Usage:
    docopt_test [-abcd] <name> <age> <address>

Options:
    -h,--help     show all args
    -a            参数1
    -b            参数2
    -c            参数3
    -d            参数4

Example:
    docopt_test zhangsan 22 上海
"""

from docopt import docopt

def test1():
    arguments = docopt(__doc__)
    print(arguments)
    print 'name:%s \nage:%s \naddress:%s' %(arguments['<name>'],arguments['<age>'],arguments['<address>'])
    options = ''.join([key for key, value in arguments.items() if value is True])
    print arguments.items()
    print options
    print '******************************'
    for key, value in arguments.items():
        print key ,value
       # print '--------------------------'
if __name__ == '__main__':
    test1()



'''
E:\python>python docopt_test.py -ab jack 26 NewYork
{'-a': True,
 '-b': True,
 '-c': False,
 '-d': False,
 '<address>': 'NewYork',
 '<age>': '26',
 '<name>': 'jack'}
name:jack
age:26
address:NewYork
[('-d', False), ('-a', True), ('-c', False), ('-b', True), ('<address>', 'NewYork'), ('<name>', 'jack'), ('<age>', '26')]
-a-b
******************************
-d False
-a True
-c False
-b True
<address> NewYork
<name> jack
<age> 26

'''

相关docopt博客链接: https://www.jianshu.com/p/9ae4cf88e552

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值