argparse参数的可选值

dan*_*jar 8 python command-line-interface argparse python-3.x

我想区分这三种情况:

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

我怎么能用Python做到这一点argparse?前两个案件将被覆盖,action='store_true'但第三个案件将失效.

jon*_*rpe 8

你可以这样做nargs='?':

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

你的三个案例会给出:

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

分别.