首页 > 解决方案 > argparse 以验证 python 中的未知参数

问题描述

测试1.py:

_argParserObj = argparse.ArgumentParser()
_argParserObj.add_argument('--tool', type=str, dest='tool')
parsedArgs, passthroughs = _argParserObj.parse_known_args()

当 test1.py 执行如下

test1.py --tool abc arg1 arg2 --invalid_switch

我想显示以下错误。但仍接受 arg1 和 arg2 作为额外参数

test1.py:错误:无法识别的参数:-invalid_switch

目前它也只是解析invalid_switch一个 passthrough 并抛出任何错误。

谁能建议如何实现这一目标?

标签: pythonargparse

解决方案


您可以尝试parse_args()代替parse_known_args()

_argParserObj = argparse.ArgumentParser()
_argParserObj.add_argument('--tool', type=str, dest='tool')
parsedArgs, passthroughs = _argParserObj.parse_args()

parse_args()将在您的情况下显示此错误

test.py: error: unrecognized arguments: --invalid_switch

推荐阅读