gpt4 book ai didi

python - 如何验证传递参数的总数?

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:18 24 4
gpt4 key购买 nike

在使用 argparse 时,我需要确保用户输入两个字符串。但是,他们有两种可能的选择来输入字符串,例如选项 -a-b。他们应该能够执行以下任何操作:

python runscript.py -a str1 str2
python runscript.py -a str1 -b str2
python runscript.py -b str1 str2

关键是必须只有两个输入,但它们可以用于任何可用的选项。

我的尝试基本上是这样设置参数的

parser.add_argument('-a', nargs='*')
parser.add_argument('-b', nargs='*')

然后我必须这样做:

if (args.a): num_a = len(args.a)    # I need to check if the -a option was even used
else: num_a = 0

if (args.b): num_b = len(args.b) # same as above but for -b option
else: num_b = 0

# Check that number of arguments is correct
if (num_a + num_b) != 2:
<error code>

这似乎有点无关紧要。有没有更 Pythonic 的方式来做到这一点?

最佳答案

给两个参数一个默认的列表值:

parser.add_argument('-a', nargs='*', default=[])
parser.add_argument('-b', nargs='*', default=[])

现在值总是将是一个列表,简化您的错误检查:

if len(args.a) + len(args.b) != 2:
parser.error('....')

关于python - 如何验证传递参数的总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32147161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com