Python 选项的argparse选项
我正在尝试在Python 选项的argparse选项,python,python-3.x,argparse,Python,Python 3.x,Argparse,我正在尝试在argparse中添加选项选项。 目前我有: group = parser.add_mutually_exclusive_group() group.add_argument("--md", help="Create xyz file for each ionic step for" " visualization", action='store_true') group.add_argument("--force", help="See wh
argparse
中添加选项选项。
目前我有:
group = parser.add_mutually_exclusive_group()
group.add_argument("--md", help="Create xyz file for each ionic step for"
" visualization", action='store_true')
group.add_argument("--force", help="See which atom has maximum force",
action='store_true')
group.add_argument("--opt", help="grep string from file",
nargs=2, metavar=("str", "file"))
parser.add_argument("--xsf", help="Create xsf file for md(default is xyz)"
" visualization", action='store_true')
parser.add_argument("-N", help="Showing first N line",
metavar='integer', type=int)
parser.add_argument("-n", help="Showing last n line",
metavar='integer', type=int)
args = parser.parse_args()
其中:
./foo.py --h
usage: foo.py [-h]
[--md | --force | --opt str file]
[--xsf] [-N integer] [-n integer]
但是我想要--xsf
作为--md
的子选项,-N,-N
作为--opt
的子选项;e、 g
./foo.py --h
usage: foo.py [-h]
[--md [--xsf]| --force | --opt str file [-N integer] [-n integer]]
但我不知道如何做到这一点。也许我遗漏了什么,但在我的生活中没有这样的选择
还有其他方法吗?互斥组机制非常简单,不适用于任何类型的嵌套或子组 有一个Python错误/问题要求更全面的分组机制,但建议的补丁相当复杂。问题不仅在于测试,还在于以用户友好的方式定义组,以及生成
用法
行。很高兴您包含了所需的用法,但该格式远远超出了当前帮助格式化程序的功能
你可能会考虑把你的问题重新定义为次级问题。子parser是互斥的(您只能给出一个命令名),您可以将--xsf
指定为md
的参数,将-N
指定为--opt
的参数。但下级警察也有自己的帮助问题
另一种方法是编写自己的
用法
,并在解析后自己测试参数。通过选择合适的默认值,您通常可以判断是否提供了参数(用户不能指定None
),或者您可以忽略不必要的参数。如果我将xsf添加到组中,它不能与md一起使用,它们将相互排斥。