Le varie azioni delle opzioni hanno tutte requisiti ed effetti leggermente differenti. Ad eccezione dell'azione ``help'', dovete fornire almeno un'altro argomento chiave quando create la Option; i requisiti esatti per ogni azione vengono elencati qui:
L'opzione deve essere seguita da un argomento, che viene convertito in
un valore secondo quanto specificato in type, e memorizzato in
dest. Se nargs > 1
, possono venire elaborati più argomenti
dalla riga di comando; tutti gli argomenti verranno convertiti secondo
quanto specificato in type, e memorizzati sotto forma di tupla in
dest. Vedete la sezionne 6.20.3,
``Tipi delle opzioni'', più sotto.
Se viene fornito choices (una sequenza di stringhe), il tipo predefinito è ``choice''.
Se type non viene specificato, il tipo predefinito è ``string''.
Se dest non viene specificato, optparse deriva il nome della variabile di destinazione dalla prima opzione in forma lunga (per esempio --foo-bar diventa foo_bar). Se non ci sono opzioni in forma lunga, optparse deriva il nome della destinazione dalla prima opzione in forma breve (per esempio, -f diventa f).
Esempio:
make_option("-f") make_option("-p", type="float", nargs=3, dest="point")
Data la seguente riga di comando:
-f foo.txt -p 1 -3.5 4 -fbar.txt
optparse imposterà:
values.f = "bar.txt" values.point = (1.0, -3.5, 4.0)
(In effetti, values.f viene impostato due volte, ma solo la seconda volta è visibile nella parte finale.)
Il valore const fornito al costruttore di Option viene memorizzato in dest.
Esempio:
make_option("-q", "--quiet", action="store_const", const=0, dest="verbose"), make_option("-v", "--verbose", action="store_const", const=1, dest="verbose"), make_option("--noisy", action="store_const", const=2, dest="verbose"),
Se viene visto --noisy, optparse imposterà:
values.verbose = 2
Uno caso speciale di ``store_const'', che memorizza True
in
dest.
Come ``store_true'', ma memorizza False
.
Esempio:
make_option(None, "--clobber", action="store_true", dest="clobber") make_option(None, "--no-clobber", action="store_false", dest="clobber")
L'opzione deve essere seguita da un argomento, che viene accodato alla
lista in dest. Se non viene fornito alcun valore predefinito
per dest (cioè il valore predefinito è None
), non appena
optparse incontra questa opzione sulla riga di comando viene
automaticamente creata una lista vuota. Se nargs > 1
, vengono
elaborati più argomenti, e una tupla di lunghezza pari a nargs
viene aggiunta a dest.
I valori predefiniti per type e dest sono uguali a quelli dell'azione ``store''.
Esempio:
make_option("-t", "--tracks", action="append", type="int")
Se l'argomento -t3 viene individuato sulla riga di comando, optparse esegue l'equivalente di:
values.tracks = [] values.tracks.append(int("3"))
Se, un po' più avanti, venisse individuato --tracks=4, verrebbe eseguito:
values.tracks.append(int("4"))
Vedete ``Gestione degli Errori'' (sezione 6.20.2) per informazioni su modo in cui optparse si comporta con qualcosa come --tracks=x.
Incrementa il valore intero memorizzato in dest. dest viene impostato a zero prima di venire incrementato la prima volta (a meno che non abbiate fornito un valore predefinito).
Esempio:
make_option("-v", action="count", dest="verbosity")
La prima molta che -v viene individuato sulla riga di comando, optparse esegue l'equivalente di:
values.verbosity = 0 values.verbosity += 1
Ogni occorrenza successiva di -v risulta tale:
values.verbosity += 1
Chiama la funzione specificata da callback. La dichiarazione della funzione dovrebbe essere:
func(option : Option, opt : string, value : any, parser : OptionParser, *args, **kwargs)
Le opzioni di callback vengono trattate dettagliatamente nella sezione 6.20.4, ``Opzioni di callback''.
Stampa un completo messagio di aiuto per tutte le opzioni nell'istanza corrente del parser delle opzioni. Il messaggio di aiuto viene costruito dalle stringhe usage passate al costruttore di OptionParser, e dalla stringa help passata singolarmente a ciascuna opzione.
Se non viene fornita nessuna stringa help per un'opzione, questa viene comunque mostrata nel messaggio di aiuto. Per omettere completamente una opzione, usate il valore speciale optparse.SUPPRESS_HELP.
Esempio:
from optparse import Option, OptionParser, SUPPRESS_HELP usage = "usage: %prog [options]" parser = OptionParser(usage, option_list=[ make_option("-h", "--help", action="help"), make_option("-v", action="store_true", dest="verbose", help="Sii moderatamente verboso") make_option("--file", dest="filename", help="File di input da cui leggere i dati"), make_option("--secret", help=SUPPRESS_HELP) ])
Se optparse incontra -h oppure --help sulla riga di comando, verrà stampato sullo stdout qualcosa di simile al seguente messaggio di aiuto:
usage: <yourscript> [options] options: -h, --help Visualizza questo messaggio ed esci -v Sii moderatamente verboso --file=FILENAME File di input da cui leggere i dati
Dopo aver stampato il messaggio di aiuto, optparse termina il
vostro processo con il codice di uscita sys.exit(0)
.
Stampa il numero di versione fornito ad OptionParser sullo stdout, ed esce. Il numero di versione viene effettivamente formattato e stampato dal metodo print_version() di OptionParser. Generalmente è rilevante solo se l'argomento version viene fornito al costruttore di OptionParser.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.