Nach der Dokumentation über Python getopt
(glaube ich) sollten die Optionen Felder wie die getopt()
Funktion verhalten. Allerdings kann ich nicht scheinen, optionale Parameter zu meinem Code zu aktivieren:Gibt es sowieso, um pythons getopt zu überzeugen, optionale Parameter zu Optionen zu behandeln?
#!/usr/bin/python
import sys,getopt
if __name__ == "__main__":
try:
opts, args = getopt.gnu_getopt(sys.argv[1:], "v::", ["verbose="])
except getopt.GetoptError, err:
print str(err)
sys.exit(1)
for o,a in opts:
if o in ("-v", "--verbose"):
if a:
verbose=int(a)
else:
verbose=1
print "verbosity is %d" % (verbose)
Ergebnisse in:
$ ./testopt.py -v
option -v requires argument
$ ./testopt.py -v 1
verbosity is 1
die optparse docs ist;) – SilentGhost
Ja, ich habe gerade bemerkt, dass, klassischer Fall von „falschen Tab "Syndrom. Dennoch denke ich, dass diese Argumentation auch für getopt relativ ist. –
Auch lange Optionen können optionale Argumente eindeutig haben; "--foo" vs. "--foo = arg". Python scheint dies nicht zu unterstützen, was sehr schlecht ist; ein Symptom der halben Neuimplementierung von etwas von Grund auf ... –