Python argparse 默认字符串值

Python argparse default string value

使用 argparse:

parser.add_argument("-o", "--output", help="Log to file")

我想实现以下行为:

  1. 用户没有指定 -o 标志 - 不应进行任何记录。
  2. 用户没有指定 -o - 我应该登录到默认位置, 在我的程序中定义。
  3. 用户指定 -o 和一个字符串(路径)- 我应该在那里登录。

有人知道使用 add_argument 实现该目标的最佳方法吗?我看到一个带有 int 值的 similar example,但在我的例子中,它没有得到我的默认值。

您可以为此使用 nargs='?'

parser.add_argument('-o', '--output', 
                    nargs='?', default=None, const='my_default_location')

如果不存在,它将产生 default 值,如果存在但没有值,它将使用 const,否则它将使用提供的值。

另请通读文档中的其他示例,其中有一个可选输出文件示例可能很有用。