首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docopt模块(参数解析器)的行为

docopt模块(参数解析器)的行为
EN

Stack Overflow用户
提问于 2016-03-08 15:46:08
回答 2查看 104关注 0票数 0

目前我第一次使用docopt lib,所以我肯定做错了什么。

我的剧本是:

代码语言:javascript
复制
"""prog

Usage:
    prog.py (-h | --help)
    prog.py (--version)
    prog.py -s TAG [-t NB_NUC]

Options:
    -h, --help   help
    --version    version
    -s TAG       Some TAG I want.
    -t NB_NUC    A number of nuc.
"""

如果我写: python prog.py -s SMT

我得到:

代码语言:javascript
复制
{'--help': False,
    '--version': False,
    '-h': False,
    '-s': True,
    '-t': True,
    'NB_NUC': None,
    'TAG': 'SMT'}

这似乎是对的,但如果我写:

代码语言:javascript
复制
python prog.py -s -t 10 -> TAG contain 10 (instead of None)
python prog.py -t 10 -s SMT -> TAG contain always 10 (instead of SMT) and NB_NUC contain SMT (instead of 10)
python prog.py -s SMT -t -> TAG contain SMT and NB_NUC contain None (and its what I expected on this way)

所以,我试了很多组合,但我不明白这怎么能说.

我想要的是标记总是包含与-s参数相对应的值,如果在-s之后什么都没有给出,则没有一个或一个错误,我不明白为什么不是这样。

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-11 12:24:54

问题来自于以前版本的docopt不适用于表缩进。实际版本是这样的,PEP8推荐使用空格。

对于格式化来说,最简单的方法是只编写

代码语言:javascript
复制
Usage:
    prog.py (-h | --help)
    prog.py (-v | --version)
    prog.py [options] <mandatory_file>

并将不同的选项及其描述放在Options部分中。

票数 0
EN

Stack Overflow用户

发布于 2016-03-09 15:23:38

您就快到了,只需要围绕论点的"<...>“:

代码语言:javascript
复制
"""prog

Usage:
    prog.py (-h | --help)
    prog.py (--version)
    prog.py -s TAG [-t NB_NUC]

Options:
    -h, --help   help
    --version    version
    -s TAG       Some TAG I want.
    -t NB_NUC    A number of nuc.
"""
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35871791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档