如何让 Python argparse 正确解释与命令匹配的参数?

假设我有以下设置:


parser.add_argument('-v', '--version', help='Print version',  action='version', version=VERSION)

parser.add_argument('-a', '--analyse', help='Analyse command execution',  nargs='*', action='append')

该命令analyse接收n要分析的选项。这些选项可能与命令--version和/或--help. 例子:

  1. cli --analyse key1 --version

  2. cli --analyse key2 --help

  3. cli --analyse key1 --version key2 --help

如果我运行 1、2 或 3,而不是继续analyse执行,而是argparse执行:

  • --version 为 1;

  • --help 为 2;

  • --version 为 3;

对于给定的场景,命令以 开头--analyse,我希望随后的--versionand--help被解释为选项analyse而不是它们匹配签名的命令。那可能吗?


芜湖不芜
浏览 142回答 1
1回答

慕容3067478

您可以使用argparse.Remainder(文档中最后一个要点中的解释):import argparseVERSION = "1.0"parser = argparse.ArgumentParser(description='Argparse test')parser.add_argument('-v', '--version', help='Print version',  action='version', version=VERSION)parser.add_argument('-a', '--analyse', help='Analyse command execution',  nargs=argparse.REMAINDER, action='append')args = parser.parse_args()if args.analyse:    print(args.analyse)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python