docopt 模块的行为(参数解析器)
Behaviour of the docopt module (argument parser)
我目前是第一次使用 docopt 库,所以我肯定做错了什么
我的脚本是:
"""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
我得到:
{'--help': False,
'--version': False,
'-h': False,
'-s': True,
'-t': True,
'NB_NUC': None,
'TAG': 'SMT'}
这似乎是正确的,但如果我写:
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)
所以,我尝试了很多组合,但我不明白这应该怎么说...
我想要的是 TAG 总是包含与 -s 参数对应的值,如果在 -s 之后没有给出任何内容,则带有 None 或错误,我不明白为什么不是这样..
感谢您的帮助!
你快完成了,只需要参数周围的“<...>”:
"""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.
"""
问题出在以前版本的 docopt 无法使用制表缩进。
实际版本确实如此,而且 PEP8 还是建议使用空格。
对于格式化,最简单的方法是只写
Usage:
prog.py (-h | --help)
prog.py (-v | --version)
prog.py [options] <mandatory_file>
并将不同的选项及其描述放在 Options
部分。
我目前是第一次使用 docopt 库,所以我肯定做错了什么
我的脚本是:
"""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
我得到:
{'--help': False,
'--version': False,
'-h': False,
'-s': True,
'-t': True,
'NB_NUC': None,
'TAG': 'SMT'}
这似乎是正确的,但如果我写:
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)
所以,我尝试了很多组合,但我不明白这应该怎么说...
我想要的是 TAG 总是包含与 -s 参数对应的值,如果在 -s 之后没有给出任何内容,则带有 None 或错误,我不明白为什么不是这样..
感谢您的帮助!
你快完成了,只需要参数周围的“<...>”:
"""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.
"""
问题出在以前版本的 docopt 无法使用制表缩进。 实际版本确实如此,而且 PEP8 还是建议使用空格。
对于格式化,最简单的方法是只写
Usage:
prog.py (-h | --help)
prog.py (-v | --version)
prog.py [options] <mandatory_file>
并将不同的选项及其描述放在 Options
部分。