使用带有python的argparse时的字符串选项

时间:2014-07-25 22:31:03

标签: python argparse

我不太了解argparse的以下行为

parser.add_argument("-option1", type=int, nargs='?', const=1, default=1, choices=xrange(1, 20), help="help message of option1")
parser.add_argument("-option2", type=str, nargs=1, help="help message of option2")

在option1的情况下,args.option1是一个整数,当提供时。 在option2的情况下,args.option2看起来像一个字符串数组。如果我想获得用option2传递的实际字符串

,我必须使用args.option2 [0]

1 个答案:

答案 0 :(得分:1)

直接在nargs的文档中对此进行了解释。总结:

对于nargs=N,如果N是整数,则会获得N值的列表。即使N1

对于nargs='?',您会得到一个值(可能是默认值)。

对于nargs完全停止,您将获得该操作的默认值。如果操作是,例如store,则表示单个值,而不是一个值的列表。

它甚至明确地指出了让你感到惊讶的部分:

  

请注意,nargs = 1会生成一个项目的列表。这与默认情况不同,在默认情况下,项目由其自身生成。