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

时间:2015-04-09 10:52:49

标签: python python-2.7 argparse default-arguments

我需要做以下事情:

  1. if脚本变量test == False
  2. 没有参数
  3. elif有论据-t--test变量test == True
  4. else还有另一个参数将它们作为字符串传递给第三个代码
  5. 现在我收到了一个错误:

    # ./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
    

1 个答案:

答案 0 :(得分:1)

在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