【发布时间】:2017-04-24 14:17:02
【问题描述】:
回到最初提出的问题 Python; argparse; how to specify position of positional arguments,我遇到了一个有效的用例,回答了为什么需要这样做。
如果你有一个带有可选值的参数和一个可选的位置参数,这可以通过 argparse 实现,例如,来自帮助:
$ myprog.py --help
usage: playargs.py [-h] [-i [I]] [positional [positional ...]]
-----cropped-----
那么,设置“-i”标志而没有值“I”并获得位置值的唯一方法是将“-i”标志放在末尾。所以,如果你写
$ myprog.py -i one two three
'one' 值不可避免地变为'-i'。如果您希望所有“一”、“二”和“三”都被视为位置,那么唯一的方法就是写
$ myprog.py one two three -i
我认为应该有一种方法可以将接受的语法限制为:
playargs.py [positional [positional ...]] [-i [I]]
在可选位置参数之前的值 'I' 的可选性使事情变得不清楚。
argparse 或其他模块有什么办法吗?
【问题讨论】:
-
只是为了确保:您的问题只是关于帮助文本的格式?
-
不,这是关于实现行为(我希望在此帮助文本中描述)