欢迎访问宙启技术站
智能推送

使用docopt()快速构建简单的命令行应用的演示程序

发布时间:2023-12-27 21:28:34

docopt是一个Python库,用于解析命令行参数并自动生成帮助文档。它可以帮助我们快速构建简单的命令行应用。下面是一个使用docopt的演示程序,带有使用例子。

"""MyProgram

Usage:
    myprogram add <a> <b>
    myprogram subtract <a> <b>
    myprogram multiply <a> <b>
    myprogram divide <a> <b>

Options:
    -h --help       Show this screen.
    --version       Show version.

Examples:
    myprogram add 2 3              # output: 5
    myprogram subtract 5 2         # output: 3
    myprogram multiply 4 6         # output: 24
    myprogram divide 10 2          # output: 5
"""

from docopt import docopt

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    return a / b

if __name__ == '__main__':
    arguments = docopt(__doc__, version='MyProgram 1.0')

    if arguments['add']:
        result = add(int(arguments['<a>']), int(arguments['<b>']))
        print(result)
    elif arguments['subtract']:
        result = subtract(int(arguments['<a>']), int(arguments['<b>']))
        print(result)
    elif arguments['multiply']:
        result = multiply(int(arguments['<a>']), int(arguments['<b>']))
        print(result)
    elif arguments['divide']:
        result = divide(int(arguments['<a>']), int(arguments['<b>']))
        print(result)

运行以上代码,可以使用如下命令行参数测试:

$ python myprogram.py add 2 3
5

$ python myprogram.py subtract 5 2
3

$ python myprogram.py multiply 4 6
24

$ python myprogram.py divide 10 2
5

以上是一个简单的命令行应用程序,它接受两个整数参数,并根据不同的命令执行不同的操作。通过使用docopt,我们可以轻松地定义命令和参数以及生成帮助文档。