假设我有以下设置: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. 例子:cli --analyse key1 --versioncli --analyse key2 --helpcli --analyse key1 --version key2 --help如果我运行 1、2 或 3,而不是继续analyse执行,而是argparse执行:--version 为 1;--help 为 2;--version 为 3;对于给定的场景,命令以 开头--analyse,我希望随后的--versionand--help被解释为选项analyse而不是它们匹配签名的命令。那可能吗?
1 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
您可以使用argparse.Remainder
(文档中最后一个要点中的解释):
import argparse
VERSION = "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)
添加回答
举报
0/150
提交
取消