我正在检查这个蟒蛇文件 https://github.com/rafaelpadilla/Object-Detection-Metrics/blob/master/pascalvoc.py#L178它似乎使用了一个包含 2 个字符的简短参数。
parser.add_argument(
'-gt',
'--gtfolder',
dest='gtFolder',
metavar='',
help='folder containing your ground truth bounding boxes')
我认为简短的参数应该只包含一个字符,这让我感到惊讶。事实上,在文档中它指出短选项(选项只有一个字符长)... https://docs.python.org/3/library/argparse.html#option-value-syntax.
另一方面,代码似乎有效(至少就argparse
选项)。
我检查了代码,如果使用简短形式,它会得到正确的参数。
python3 pascalvoc.py -gt 'path/somewhere'
我注意到的唯一故障是代码的串联版本不起作用:
python3 pascalvoc.py -gt'path/somewhere'
...错误:无法识别的参数:-gtpath/某处
所以,我的问题是为什么首先允许包含超过 1 个字符的短选项。如果不是串联版本,这可能会被忽视。此外,除了短形式中必须有一个连字符减号这一事实之外,这似乎绕过了短应该短于长的简单规则。从这个意义上说,这是功能性的(当然如果不应用串联选项):
parser.add_argument(
'-gt-not-short-at-all-argument',
'--gtfolder',
dest='gtFolder',
metavar='',
help='folder containing your ground truth bounding boxes')