禁用argparse中类似参数的连接和缩写

时间:2011-12-29 14:33:46

标签: python argparse

我希望能够在我的程序中支持几个简短的参数,比如'-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

有人知道如何禁用短格式参数的加入和/或缩写吗?

1 个答案:

答案 0 :(得分:3)

我认为约定规定“短”参数只是一个字符,它们可以在命令行中组合成一个单词,这样“-ct”等同于“-c -t”。我的猜测是argparse不支持像“-ct”这样的两个char“短”参数,所以行为是未定义的。