我想解析一个必需的位置参数,其中包含一个以逗号分隔的整数列表。如果第一个整数包含前导减号 ('-'),则 argparse 会抱怨:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('positional')
parser.add_argument('-t', '--test', action='store_true')
opts = parser.parse_args()
print opts
$ python example.py --test 1,2,3,4
Namespace(positional='1,2,3,4', test=True)
$ python example.py --test -1,2,3,4
usage: example.py [-h] [-t] positional
example.py: error: too few arguments
$ python example.py --test "-1,2,3,4"
usage: example.py [-h] [-t] positional
example.py: error: too few arguments
我见过人们建议使用除-
标志字符之外的其他字符,但我宁愿不这样做。是否有另一种方法来配置 argparse 以允许同时--test
作为-1,2,3,4
有效参数?