我正在使用argparse包来解析命令行参数。现在我想接受0、1或2个字符串并将它们放入一个列表中。你知道吗
我目前的做法是:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('strs', nargs='*')
print(parser.parse_args([]).strs)
print(parser.parse_args(['AAA']).strs)
print(parser.parse_args(['AAA', 'BBB']).strs)
print(parser.parse_args(['AAA', 'BBB', 'CCC']).strs)
对于第一、第二和第三个parse_args()
结果是预期的。最后一种方法是if len(parse_args.strs) > 2: raise
。有没有更好的方法可以让argparse帮我检查一下?你知道吗
在
argparse
中没有接受nargs
范围的方法,只有1
、2
、'+'
、'*'
这样的值。你知道吗您可以编写一个定制的
Action
类来检查nargs='*'
传递给它的值的数量。但我认为在解析之后执行这个测试同样容易。你知道吗我可以找到一个bug/问题,如果你真的想加入range
nargs
选项的话。你知道吗如果没有其他位置,可以定义3个位置,其中2个使用
?
。您甚至可以将它们组合到一个具有通用名称和“append”操作的列表中。我来探索一下。你知道吗得到了
default
的答案。我可以用英语纠正(哦,这是为1-3参数编码的,但是你明白了)。你知道吗
相关问题 更多 >
编程相关推荐