参数的参数解析可选值



我想区分这三种情况:

  • 该标志根本不存在python example.py;
  • 该标志存在,但没有值python example.py -t;和
  • 该标志存在,其值python example.py -t ~/some/path

如何使用 Python argparse 执行此操作?前两种情况将由action='store_true'涵盖,但随后第三种情况无效。

您可以使用

nargs='?'执行此操作:

如果可能,将从命令行使用一个参数,并且 作为单个项目生产。如果不存在命令行参数,则 将生成默认值的值。请注意,对于可选参数, 还有一个额外的情况 - 选项字符串存在但不存在 后跟命令行参数。在这种情况下,来自 const 的值 将生产。

您的三种情况将给出:

  1. default值;
  2. const值;以及
  3. '~/some/path'

分别。例如,给定以下简单实现:

from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('-t', nargs='?', default='not present', const='present without value')
print(parser.parse_args().t)

你会得到这个输出:

$ python test.py
not present
$ python test.py -t
present without value
$ python test.py -t 'passed a value'
passed a value

相关内容

  • 没有找到相关文章

最新更新