|
|
|
La libreria di riferimento di Python |
|
|
|
6.20.1.1 Terminologia
Innanzitutto dobbiamo stabilire un po' di terminologia.
- argument
-
una porzione di testo che l'utente digita sulla riga di comando, e che
la shell passa a execl() o execv(). In Python,
gli argomenti sono elementi di
sys.argv[1:]
. (sys.argv[0]
è il nome che sta per essere eseguito; nell'ambito dell'analisi degli
argomenti ciò non è molto importante. Anche le shell Unix utilizzano
il termine ``word'' (NdT: parola).
Sarebbe auspicabile occasionalmente, utilizzare una lista argomenti
differente da sys.argv[1:]
, in modo che possiate leggere
``argomento'' come ``un elemento di sys.argv[1:]
oppure di
qualche altra lista fornita in sostituzione di sys.argv[1:]
''.
- option
-
un argomento utilizzato per fornire informazioni supplementari al fine
di guidare o personalizzare l'esecuzione di un programma. Esistono
svariate differenze di sintassi per le opzioni; la sintassi
tradizionale di Unix è un trattino (-) seguito da
una lettera singola, per esempio -x o -F.
Inoltre la sintassi tradizionale di Unix consente che le opzioni
multiple vengano riunite in un singolo argomento, per esempio
-x -F è equivalente a -xF. Il progetto
GNU ha introdotto il doppio trattino (--) seguito da
una serie di parole separate da un trattino, per esempio
--file o --dry-run. Queste sono le
sole due opzioni sintattiche concesse da optparse.
Alcune altre opzioni di sintassi utilizzate dalla comunità informatica:
- un trattino seguito da alcune lettere, per esempio
-pf (questo non corrisponde ad opzioni multiple
riunite in un singolo argomento.)
- un trattino seguito da un'intera parola, per esempio
-file (questo tecnicamente è equivalente alla
precedente sintassi, ma solitamente non si trovano insieme nello
stesso programma).
- un segno ``più'' seguito da una lettera singola o da alcune
lettere, oppure da una parola, per esempio +f,
+rgb.
- uno slash seguito da una lettera o da alcune lettere, oppure da
una parola, per esempio /f, /file.
optparse non supporta queste opzioni sintattiche, né lo farà in
futuro. (Se volete veramente utilizzare una di queste opzioni di
sintassi, dovrete creare una classe derivata di OptionParser e
ridefinire tutti i singoli pezzi. Ma per favore non lo fate!
optparse opera deliberatamente nel modo tradizionale
proprio di Unix/GNU; le prime tre opzioni non sono standard su nessun
sistema, e l'ultima ha senso esclusivamente se state programmando per
piattaforme MS-DOS/Windows e/o VMS.)
- option argument
-
un argomento che segue un'opzione, è strettamente collegato ad essa, e
viene rimosso dalla lista degli argomenti contemporaneamente all'opzione
stessa. Spesso, gli argomenti di un'opzione possono anche far parte
dello stesso argomento costituente l'opzione, ad esempio:
sarebbe equivalente a:
(optparse supporta questa sintassi.)
Alcune opzioni non prendono mai un argomento. Altre invece richiedono
sempre un argomento. Molti utenti desiderano avere la possibilità
di passare ``argomenti facoltativi ad un'opzione'', nel senso che
alcune opzioni prenderanno un argomento nel caso lo rilevino sulla
riga di comando, altrimenti non ne prenderanno alcuno. Questo
comportamento è in qualche modo controverso, perché rende ambigua
l'analisi: se -a e -b sono entrambe opzioni, e
-a prende un argomento facoltativo, come deve venire
interpretato -ab? Il modulo optparse non
supporta l'uso degli argomenti facoltativi di un'opzione.
- argomento posizionale
-
qualche volta presente come residuo della lista degli argomenti, dopo
che le opzioni sono state analizzate; ovvero, dopo che le opzioni ed i
loro argomenti siano stati analizzati e rimossi dalla lista degli
argomenti.
- opzione richiesta
-
un'opzione che deve essere fornita sulla riga di comando. La
frase ``opzione richiesta'' è un ossimoro; la presenza di ``opzioni
richieste'' in un programma è di solito indice di una qualche carenza
nel progetto dell'interfaccia utente. optparse non vi
impedisce di implementare questo tipo di opzioni, tuttavia non vi
fornisce neppure molto aiuto per farlo. Vedete ``Esempi estesi''
(sezione 6.20.5) per due modi di
implementare le opzioni di questo tipo con optparse.
Per esempio, considerate questa ipotetica riga di comando:
prog -v --report /tmp/report.txt foo bar
-v e --report sono entrambe
opzioni. Supponendo che l'opzione --report richieda un
argomento, /tmp/report.txt
è un argomento dell'opzione.
foo
e bar
sono invece argomenti posizionali.
|
|
|
La libreria di riferimento di Python |
|
|
|
Release 2.3.4, documentation updated on 21. maggio 2005.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.