Python argparse参数的可选值

Python argparse参数的可选值,python,python-3.x,command-line-interface,argparse,Python,Python 3.x,Command Line Interface,Argparse,我想区分这三种情况: 该标志根本不存在python example.py 该标志存在,但没有值python example.py-t;及 该标志存在并且具有值python example.py-t~/some/path 如何使用Pythonargparse?前两种情况将由action='store\u true'涵盖,但第三种情况无效。您可以通过以下方式执行: 如果可能,将从命令行使用一个参数,并且 作为单一产品生产的。如果不存在命令行参数,则 将生成默认值。请注意,对于可选参数, 还有一种

我想区分这三种情况:

  • 该标志根本不存在
    python example.py
  • 该标志存在,但没有值
    python example.py-t
    ;及
  • 该标志存在并且具有值
    python example.py-t~/some/path
如何使用Python
argparse
?前两种情况将由
action='store\u true'
涵盖,但第三种情况无效。

您可以通过以下方式执行:

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

您的三个案例将给出:

  • 默认值
  • const
    值;及
  • “~/some/path”
  • 分别。例如,给定以下简单实现:

    从argparse导入ArgumentParser
    parser=ArgumentParser()
    parser.add_参数('-t',nargs='?',default='not present',const='present without value')
    打印(parser.parse_args().t)
    
    您将获得以下输出:

    $python test.py
    不在场
    $python test.py-t
    虚无
    $python test.py-t“传递了一个值”
    传递了一个值
    
    您能否提供一个完整的示例,说明如何使用parser.add_argument()实现这一点?@OmryYadan补充道,感谢您的反馈。请注意,链接的文档还包含一些示例。