Я хотел бы проанализировать требуемый позиционный аргумент, содержащий список целых чисел, разделенных запятыми. Если первое целое число содержит знак минус ('-'), 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
в качестве допустимых аргументов?