如何处理 argparse 中缺少的参数?

How to handle missing arguments in argparse?

我需要做以下事情:

  1. if 脚本变量没有参数 test == False
  2. elif 有参数 -t--test 变量 test == True
  3. else 还有另一个参数将它们作为字符串传递给第三个代码

现在我得到一个错误:

# ./cli something
usage: cli [-t]
cli: error: unrecognized arguments: something

我的前两步代码:

import argparse
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-t', '--test', action="store_true")
args = parser.parse_args()
if args.test is True:
    intro = None

在 argparse 中,您需要将其作为单独的参数,例如:

import argparse
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-t', '--test', action="store_true")
parser.add_argument('params', nargs='+')
args = parser.parse_args()
if args.test is True:
    intro = None
elif args.params:
    pass  # process the params here
else:
    pass  # no params whatsoever