Ich habe Code, der wie folgt aussieht: siehtWie kann ich Python Argparse nur einmal auswählen?
list_of_choices = ["foo", "bar", "baz"]
parser = argparse.ArgumentParser(description='some description')
parser.add_argument("-n","--name","-o","--othername",dest=name,
choices=list_of_choices
und was ich für eine Ausgabe wie:
-n {foo,bar,baz}, --name {foo,bar,baz}, -o {foo,bar,baz},
--othername {foo,bar,baz}
Was würde Ich mag ist:
-n, --name, -o, --othername {foo,bar,baz}
Für Kontext gibt es Historische Gründe, warum wir zwei Namen für die gleiche Option brauchen und die tatsächliche Liste der Auswahlmöglichkeiten ist 22 Elemente lang, so sieht es viel schlechter aus als die oben genannten.
Dieses Problem ist subtil anders als Python argparse: Lots of choices results in ugly help output in dem ich nicht mit zwei separaten Optionen arbeiten und es ist okay, alles auf der Linie wie oben zu haben.
Ich glaube nicht, dass das ganz funktioniert, wenn ich -f foo übergebe, erhalte ich später einen Fehler, der besagt, dass name keiner ist. – coyot
Versuchen Sie, alle Argumente zu erfassen oder nur diejenigen zu akzeptieren, die Sie definieren? In diesem Fall müssten Sie ein weiteres add_argument() für -f ausführen. Ich denke auch, dass dest eine Zeichenkette dest = 'name' sein soll. http://docs.python.org/dev/library/argparse.html#dest –