Python 使用带有指定可接受选项的argparse

Python 使用带有指定可接受选项的argparse,python,argparse,Python,Argparse,我正在尝试使用argparse接受所需的命令行选项。我定义了这样一个函数 def get_args(): parser = argparse.ArgumentParser(description='Help Desk Calendar Tool') parser.add_argument('-s', '--start', type=str, required=True, metavar='YYYY-MM-DD') parser.add_argument('-e','--e

我正在尝试使用argparse接受所需的命令行选项。我定义了这样一个函数

def get_args():
    parser = argparse.ArgumentParser(description='Help Desk Calendar Tool')
    parser.add_argument('-s', '--start', type=str, required=True, metavar='YYYY-MM-DD')
    parser.add_argument('-e','--end', type=str, required=True, metavar='YYYY-MM-DD')
    parser.add_argument('-m','--mode', type=str, required=True , metavar='add|del')
    args = parser.parse_args()

    start = args.start
    end = args.end
    mode = args.mode
    return start,end,mode

我试图做的是针对选项——模式,我希望它只接受add或del参数。我可以通过if语句来完成这项任务,但我想知道argparse是否有一种内置的方式来完成这项任务。我看了nargs,但不太清楚这是否是我需要走的道路

我想你是在问关于
选择的问题

parser.add_argument('-m','--mode', type=str, required=True, choices=['add', 'del'])
演示:


我将对此进行研究,文档对argparse来说有点过多。谢谢,就这样!完美的谢谢
$ python test.py -s 10 -e 20 -m invalid
usage: test.py [-h] -m {add,del}
test.py: error: argument -m/--mode: invalid choice: 'invalid' (choose from 'add', 'del')