我希望能够在我的程序中支持几个简短的参数,比如'-c'和-ct'。问题是,对于短格式参数,argparse有能力加入它们,所以它认为'-ct'实际上是'-c'和'-t',这不是我想要的,可能会产生奇怪的错误(因为我也有一个单独的'-t'参数)。
这是我的代码:
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--default-config', type=str, nargs=1, required=False)
parser.add_argument('-ct', '--countdown', type=str, nargs=1, required=False)
但是,如果我删除短格式,那么长格式的效果非常好。
来自argparse doc: http://docs.python.org/dev/library/argparse.html#option-value-syntax http://docs.python.org/dev/library/argparse.html#argument-abbreviations
有人知道如何禁用短格式参数的加入和/或缩写吗?
答案 0 :(得分:3)
我认为约定规定“短”参数只是一个字符,它们可以在命令行中组合成一个单词,这样“-ct”等同于“-c -t”。我的猜测是argparse不支持像“-ct”这样的两个char“短”参数,所以行为是未定义的。