Wie zu analysieren positionale Argumente mit führenden Minuszeichen (negative Zahl) mit argparse

Möchte ich parse eine notwendige, positions-argument enthält eine durch Kommata getrennte Liste von Integer-zahlen. Wenn der erste Integerwert enthält, einem führenden minus ('-') Zeichen, argparse beklagt:

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

Ich habe Menschen gesehen, die vorschlagen, mit einigen anderen Zeichen neben - da die flag-Zeichen, aber ich möchte lieber nicht tun. Gibt es eine andere Möglichkeit zum konfigurieren von argparse, dass --test und -1,2,3,4 als gültige Argumente?

Nur falls jemand diese braucht, wenn --test nahm argument, das man tun könnte: python example.py --test=-1,2,3,4

InformationsquelleAutor Inactivist | 2013-02-04

Schreibe einen Kommentar