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