python学习-docopt 命令参数解析器

python docopt模块详解

python docopt模块详解

docopt 本质上是在 Python 中引入了一种针对命令行参数的形式语言,在代码的最开头使用 """ """文档注释的形式写出符合要求的文档,就会自动生成对应的parse

用法:

用法很简单,我们以tickets 为例,你只需要在开头加入下边:

"""Train tickets query command line

Usage: ticket [-dgktz] <from> <to> <date>

Options:
    -h --help     Show this screen.
    -d            动车
    -g            高铁
    -K            快速
    -t            特快
    -z            直达
"""
然后再代码执行中加入下边的:
arguments = docopt(__doc__,version="Tickets 1.0")
print(arguments)

运行结果如下,会生成一个arguments的字典。


详解

前面我们举了一个例子,下面我们来详细介绍一下如何完成一个符合 docopt 要求的注释文档。

Usage

所有出现在 usage: (区分大小写)和一个空行之间的文本都会被识别为一个命令组合, usage 后的第一个字母将会被识别为这个程序的名字,所有命令组合的每一个部分(空格分隔)都会成为字典中的一个key。

参数

形如 <argument> 或者 ARGUMENT 的文本将会被识别为参数。

在转化后的字典中的取值为 True 或者 False 。

Usage: my_program <host> <port>

选项

形如 -o 或者 --option 的文本将会被识别为选项。

在转化后的字典中的取值为 True 或者 False 。

Usage: my_program -f <file>

Tips:

  • 短选项可以组合起来,比如 -abc 等价于 -a -b -c
  • 长选项需要的参数需要使用 = 或者空格来分隔, --input=ARG 等价于 --input ARG
  • 短选项可以不需要空格, -f FILE 等价于 -fFILE

猜你喜欢

转载自blog.csdn.net/gzh9255/article/details/81065627