【问题标题】:string options when using argparse with python将 argparse 与 python 一起使用时的字符串选项
【发布时间】:2014-09-17 21:13:01
【问题描述】:

我不太了解 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]

【问题讨论】:

    标签: python argparse


    【解决方案1】:

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

    对于nargs=N,如果N 是一个整数,您将获得N 值的列表。即使N1

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

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

    它甚至明确指出了令你惊讶的部分:

    请注意,nargs=1 会生成一个包含一项的列表。这与默认情况下不同,默认情况下该项目是由自己生成的。

    【讨论】:

    • @hpaulj:感谢修复!
    猜你喜欢
    • 2012-02-11
    • 2015-03-11
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2022-10-15
    • 2018-08-18
    相关资源
    最近更新 更多