在Python中使用argparse处理无效参数

Yuh*_*ang 5 python argparse

argparse用来解析命令行参数,默认情况下,在接收到无效参数时,它会打印帮助消息并退出。当argparse收到无效参数时,是否可以自定义行为?

通常,我想捕获所有无效的参数并对其进行处理。我正在寻找类似的东西:

parser = argparse.ArgumentParser()
# add some arguments here
try:
    parser.parse_args()
except InvalidArgvsError, iae:
    print "handle this invalid argument '{arg}' my way!".format(arg=iae.get_arg())
Run Code Online (Sandbox Code Playgroud)

这样我就可以:

>> python example.py --invalid some_text
handle this invalid argument 'invalid' my way!
Run Code Online (Sandbox Code Playgroud)

use*_*559 4

您可能想要使用parse_known_args然后查看元组中的第二项以查看哪些参数未被理解。

也就是说,我相信这只会对额外的参数有帮助,而对具有无效值的预期参数没有帮助。