我想使用argparse构建一个带有子命令的工具。可能的语法是
/tool.py download --from 1234 --interval 60
/tool.py download --build 1432
/tool.py clean --numbers 10
所以我想使用argparse来实现:
但我没有找到一种方法将“--from”和“--internal”配对到一个组,然后使该组与“--build”互斥。
下面是我当前的代码,它只使“--from”和“--build”相互排斥。既不能确保'--from'和'--interval'组合在一起,也不能确保'--interval'和'--build'是互斥的。
parser = argparse.ArgumentParser(description='A Tool')
subparsers = parser.add_subparsers(help='sub-command help')
#create the parser for the 'download' command
download_parser = subparsers.add_parser('download', help='download help')
download_parser.add_argument('--interval', dest='interval', type=int,help='interval help')
group = download_parser.add_mutually_exclusive_group()
group.add_argument('--from',type=int, help='from help')
group.add_argument('--build', type=int, help='interval help')
例如
/tool.py download --from 1234
不应允许,因为“--from”必须与“--interval”一起使用。但我的代码默默地接受它。
以及
/tool.py download --interval 1234 --build 5678
不应允许,因为“--build”不能与其他参数一起使用。但我的代码也接受它。
任何建议将不胜感激。谢谢。
目前没有回答
相关问题 更多 >
编程相关推荐