Argparse中的可选参数

问题描述

代码中使用argparse时,如果在命令行中传递的可选参数少于要求的可选参数,如何生成错误消息?例如,我有5个可选参数,并且如果任何时候使用的可选参数少于4个,我想生成一条错误消息。 我的初学者大脑无法弄清楚。

import argparse
import math
parser = argparse.ArgumentParser(description='Loan Calculator')
parser.add_argument('--type',type=str)
parser.add_argument('--principal',type=int)
parser.add_argument('--periods',type=int)
parser.add_argument('--interest',type=float)
parser.add_argument('--payment',type=int)
args = parser.parse_args()

解决方法

在您致电parse_args之后,这是最简单的处理方法。计算多少个选项仍具有默认值None。如果大于1,则引发错误。

args = parser.parse_args()
if 1 < sum(1 for x in [args.type,args.principal,args.periods,args.interest,args.payment] if x is None):
    sys.exit("Too few options specified")